From 7edc84885e49e1455a9654535b7c9116d1c578b3 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Thu, 4 Jun 2015 15:55:22 -0400 Subject: [PATCH] update sample service apis --- service_apis/calendar/descriptor.json | 14 +- ...ogle-calendar-v3-rev127-cpp-0.1.3-doc.zip} | Bin 7751221 -> 7307851 bytes .../calendar/google/calendar_api/acl.cc | 8 +- .../calendar/google/calendar_api/acl.h | 25 +- .../calendar/google/calendar_api/acl_rule.cc | 8 +- .../calendar/google/calendar_api/acl_rule.h | 16 +- .../calendar/google/calendar_api/calendar.cc | 8 +- .../calendar/google/calendar_api/calendar.h | 15 +- .../google/calendar_api/calendar_api.h | 8 +- .../google/calendar_api/calendar_list.cc | 8 +- .../google/calendar_api/calendar_list.h | 25 +- .../calendar_api/calendar_list_entry.cc | 8 +- .../google/calendar_api/calendar_list_entry.h | 36 +- .../calendar_api/calendar_notification.cc | 8 +- .../calendar_api/calendar_notification.h | 15 +- .../google/calendar_api/calendar_service.cc | 320 +- .../google/calendar_api/calendar_service.h | 2824 +-- .../calendar/google/calendar_api/channel.cc | 8 +- .../calendar/google/calendar_api/channel.h | 15 +- .../google/calendar_api/color_definition.cc | 8 +- .../google/calendar_api/color_definition.h | 15 +- .../calendar/google/calendar_api/colors.cc | 8 +- .../calendar/google/calendar_api/colors.h | 35 +- .../calendar/google/calendar_api/error.cc | 8 +- .../calendar/google/calendar_api/error.h | 15 +- .../calendar/google/calendar_api/event.cc | 8 +- .../calendar/google/calendar_api/event.h | 71 +- .../google/calendar_api/event_attachment.cc | 8 +- .../google/calendar_api/event_attachment.h | 15 +- .../google/calendar_api/event_attendee.cc | 8 +- .../google/calendar_api/event_attendee.h | 15 +- .../google/calendar_api/event_date_time.cc | 8 +- .../google/calendar_api/event_date_time.h | 15 +- .../google/calendar_api/event_reminder.cc | 8 +- .../google/calendar_api/event_reminder.h | 15 +- .../calendar/google/calendar_api/events.cc | 8 +- .../calendar/google/calendar_api/events.h | 35 +- .../google/calendar_api/free_busy_calendar.cc | 8 +- .../google/calendar_api/free_busy_calendar.h | 35 +- .../google/calendar_api/free_busy_group.cc | 8 +- .../google/calendar_api/free_busy_group.h | 25 +- .../google/calendar_api/free_busy_request.cc | 8 +- .../google/calendar_api/free_busy_request.h | 25 +- .../calendar_api/free_busy_request_item.cc | 8 +- .../calendar_api/free_busy_request_item.h | 15 +- .../google/calendar_api/free_busy_response.cc | 8 +- .../google/calendar_api/free_busy_response.h | 35 +- .../calendar/google/calendar_api/setting.cc | 8 +- .../calendar/google/calendar_api/setting.h | 15 +- .../calendar/google/calendar_api/settings.cc | 8 +- .../calendar/google/calendar_api/settings.h | 25 +- .../google/calendar_api/time_period.cc | 8 +- .../google/calendar_api/time_period.h | 15 +- service_apis/drive/descriptor.json | 14 +- ... google-drive-v2-rev172-cpp-0.1.3-doc.zip} | Bin 11065319 -> 10738326 bytes service_apis/drive/google/drive_api/about.cc | 8 +- service_apis/drive/google/drive_api/about.h | 38 +- service_apis/drive/google/drive_api/app.cc | 8 +- service_apis/drive/google/drive_api/app.h | 16 +- .../drive/google/drive_api/app_list.cc | 8 +- .../drive/google/drive_api/app_list.h | 25 +- service_apis/drive/google/drive_api/change.cc | 8 +- service_apis/drive/google/drive_api/change.h | 25 +- .../drive/google/drive_api/change_list.cc | 8 +- .../drive/google/drive_api/change_list.h | 25 +- .../drive/google/drive_api/channel.cc | 8 +- service_apis/drive/google/drive_api/channel.h | 15 +- .../drive/google/drive_api/child_list.cc | 8 +- .../drive/google/drive_api/child_list.h | 25 +- .../drive/google/drive_api/child_reference.cc | 8 +- .../drive/google/drive_api/child_reference.h | 15 +- .../drive/google/drive_api/comment.cc | 8 +- service_apis/drive/google/drive_api/comment.h | 36 +- .../drive/google/drive_api/comment_list.cc | 8 +- .../drive/google/drive_api/comment_list.h | 25 +- .../drive/google/drive_api/comment_reply.cc | 8 +- .../drive/google/drive_api/comment_reply.h | 25 +- .../google/drive_api/comment_reply_list.cc | 8 +- .../google/drive_api/comment_reply_list.h | 25 +- .../drive/google/drive_api/drive_api.h | 8 +- .../drive/google/drive_api/drive_service.cc | 735 +- .../drive/google/drive_api/drive_service.h | 4991 ++--- service_apis/drive/google/drive_api/file.cc | 8 +- service_apis/drive/google/drive_api/file.h | 127 +- .../drive/google/drive_api/file_list.cc | 8 +- .../drive/google/drive_api/file_list.h | 25 +- .../drive/google/drive_api/parent_list.cc | 8 +- .../drive/google/drive_api/parent_list.h | 25 +- .../google/drive_api/parent_reference.cc | 8 +- .../drive/google/drive_api/parent_reference.h | 15 +- .../drive/google/drive_api/permission.cc | 8 +- .../drive/google/drive_api/permission.h | 15 +- .../drive/google/drive_api/permission_id.cc | 8 +- .../drive/google/drive_api/permission_id.h | 15 +- .../drive/google/drive_api/permission_list.cc | 8 +- .../drive/google/drive_api/permission_list.h | 25 +- .../drive/google/drive_api/property.cc | 8 +- .../drive/google/drive_api/property.h | 15 +- .../drive/google/drive_api/property_list.cc | 8 +- .../drive/google/drive_api/property_list.h | 25 +- .../drive/google/drive_api/revision.cc | 8 +- .../drive/google/drive_api/revision.h | 25 +- .../drive/google/drive_api/revision_list.cc | 8 +- .../drive/google/drive_api/revision_list.h | 25 +- service_apis/drive/google/drive_api/user.cc | 8 +- service_apis/drive/google/drive_api/user.h | 16 +- service_apis/youtube/descriptor.json | 14 +- ...oogle-youtube-v3-rev139-cpp-0.1.3-doc.zip} | Bin 20034946 -> 23090605 bytes .../youtube/google/youtube_api/CMakeLists.txt | 20 + .../google/youtube_api/access_policy.cc | 8 +- .../google/youtube_api/access_policy.h | 15 +- .../youtube/google/youtube_api/activity.cc | 8 +- .../youtube/google/youtube_api/activity.h | 35 +- .../youtube_api/activity_content_details.cc | 8 +- .../youtube_api/activity_content_details.h | 125 +- .../activity_content_details_bulletin.cc | 8 +- .../activity_content_details_bulletin.h | 25 +- .../activity_content_details_channel_item.cc | 8 +- .../activity_content_details_channel_item.h | 25 +- .../activity_content_details_comment.cc | 8 +- .../activity_content_details_comment.h | 25 +- .../activity_content_details_favorite.cc | 8 +- .../activity_content_details_favorite.h | 25 +- .../activity_content_details_like.cc | 8 +- .../activity_content_details_like.h | 25 +- .../activity_content_details_playlist_item.cc | 8 +- .../activity_content_details_playlist_item.h | 25 +- .../activity_content_details_promoted_item.cc | 8 +- .../activity_content_details_promoted_item.h | 15 +- ...activity_content_details_recommendation.cc | 8 +- .../activity_content_details_recommendation.h | 35 +- .../activity_content_details_social.cc | 8 +- .../activity_content_details_social.h | 25 +- .../activity_content_details_subscription.cc | 8 +- .../activity_content_details_subscription.h | 25 +- .../activity_content_details_upload.cc | 8 +- .../activity_content_details_upload.h | 15 +- .../youtube_api/activity_list_response.cc | 8 +- .../youtube_api/activity_list_response.h | 45 +- .../google/youtube_api/activity_snippet.cc | 8 +- .../google/youtube_api/activity_snippet.h | 25 +- .../youtube/google/youtube_api/caption.cc | 64 + .../youtube/google/youtube_api/caption.h | 237 + .../youtube_api/caption_list_response.cc | 64 + .../youtube_api/caption_list_response.h | 273 + .../google/youtube_api/caption_snippet.cc | 63 + .../google/youtube_api/caption_snippet.h | 589 + .../google/youtube_api/cdn_settings.cc | 8 +- .../youtube/google/youtube_api/cdn_settings.h | 25 +- .../youtube/google/youtube_api/channel.cc | 8 +- .../youtube/google/youtube_api/channel.h | 125 +- .../youtube_api/channel_audit_details.cc | 8 +- .../youtube_api/channel_audit_details.h | 15 +- .../youtube_api/channel_banner_resource.cc | 8 +- .../youtube_api/channel_banner_resource.h | 15 +- .../youtube_api/channel_branding_settings.cc | 8 +- .../youtube_api/channel_branding_settings.h | 55 +- .../youtube_api/channel_content_details.cc | 8 +- .../youtube_api/channel_content_details.h | 16 +- .../channel_content_owner_details.cc | 8 +- .../channel_content_owner_details.h | 15 +- .../youtube_api/channel_conversion_ping.cc | 8 +- .../youtube_api/channel_conversion_ping.h | 15 +- .../youtube_api/channel_conversion_pings.cc | 8 +- .../youtube_api/channel_conversion_pings.h | 25 +- .../youtube/google/youtube_api/channel_id.cc | 62 + .../youtube/google/youtube_api/channel_id.h | 125 + .../youtube_api/channel_list_response.cc | 8 +- .../youtube_api/channel_list_response.h | 45 +- .../youtube_api/channel_localization.cc | 8 +- .../google/youtube_api/channel_localization.h | 17 +- .../google/youtube_api/channel_section.cc | 9 +- .../google/youtube_api/channel_section.h | 77 +- .../channel_section_content_details.cc | 8 +- .../channel_section_content_details.h | 15 +- .../channel_section_list_response.cc | 8 +- .../channel_section_list_response.h | 25 +- .../channel_section_localization.cc | 8 +- .../channel_section_localization.h | 15 +- .../youtube_api/channel_section_snippet.cc | 8 +- .../youtube_api/channel_section_snippet.h | 25 +- .../youtube_api/channel_section_targeting.cc | 62 + .../youtube_api/channel_section_targeting.h | 204 + .../google/youtube_api/channel_settings.cc | 8 +- .../google/youtube_api/channel_settings.h | 52 +- .../google/youtube_api/channel_snippet.cc | 8 +- .../google/youtube_api/channel_snippet.h | 72 +- .../google/youtube_api/channel_statistics.cc | 8 +- .../google/youtube_api/channel_statistics.h | 15 +- .../google/youtube_api/channel_status.cc | 8 +- .../google/youtube_api/channel_status.h | 15 +- .../youtube_api/channel_topic_details.cc | 8 +- .../youtube_api/channel_topic_details.h | 15 +- .../youtube/google/youtube_api/comment.cc | 64 + .../youtube/google/youtube_api/comment.h | 236 + .../youtube_api/comment_list_response.cc | 66 + .../youtube_api/comment_list_response.h | 372 + .../google/youtube_api/comment_snippet.cc | 66 + .../google/youtube_api/comment_snippet.h | 697 + .../google/youtube_api/comment_thread.cc | 65 + .../google/youtube_api/comment_thread.h | 272 + .../comment_thread_list_response.cc | 66 + .../comment_thread_list_response.h | 372 + .../youtube_api/comment_thread_replies.cc | 63 + .../youtube_api/comment_thread_replies.h | 126 + .../youtube_api/comment_thread_snippet.cc | 65 + .../youtube_api/comment_thread_snippet.h | 317 + .../google/youtube_api/content_rating.cc | 8 +- .../google/youtube_api/content_rating.h | 15 +- .../youtube/google/youtube_api/geo_point.cc | 8 +- .../youtube/google/youtube_api/geo_point.h | 15 +- .../google/youtube_api/guide_category.cc | 8 +- .../google/youtube_api/guide_category.h | 25 +- .../guide_category_list_response.cc | 8 +- .../guide_category_list_response.h | 45 +- .../youtube_api/guide_category_snippet.cc | 8 +- .../youtube_api/guide_category_snippet.h | 15 +- .../google/youtube_api/i18n_language.cc | 8 +- .../google/youtube_api/i18n_language.h | 25 +- .../i18n_language_list_response.cc | 8 +- .../youtube_api/i18n_language_list_response.h | 25 +- .../youtube_api/i18n_language_snippet.cc | 8 +- .../youtube_api/i18n_language_snippet.h | 15 +- .../youtube/google/youtube_api/i18n_region.cc | 8 +- .../youtube/google/youtube_api/i18n_region.h | 25 +- .../youtube_api/i18n_region_list_response.cc | 8 +- .../youtube_api/i18n_region_list_response.h | 25 +- .../google/youtube_api/i18n_region_snippet.cc | 8 +- .../google/youtube_api/i18n_region_snippet.h | 15 +- .../google/youtube_api/image_settings.cc | 8 +- .../google/youtube_api/image_settings.h | 65 +- .../google/youtube_api/ingestion_info.cc | 8 +- .../google/youtube_api/ingestion_info.h | 15 +- .../google/youtube_api/invideo_branding.cc | 8 +- .../google/youtube_api/invideo_branding.h | 35 +- .../google/youtube_api/invideo_position.cc | 8 +- .../google/youtube_api/invideo_position.h | 15 +- .../google/youtube_api/invideo_promotion.cc | 8 +- .../google/youtube_api/invideo_promotion.h | 45 +- .../google/youtube_api/invideo_timing.cc | 8 +- .../google/youtube_api/invideo_timing.h | 15 +- .../google/youtube_api/language_tag.cc | 8 +- .../youtube/google/youtube_api/language_tag.h | 15 +- .../google/youtube_api/live_broadcast.cc | 9 +- .../google/youtube_api/live_broadcast.h | 79 +- .../live_broadcast_content_details.cc | 8 +- .../live_broadcast_content_details.h | 59 +- .../live_broadcast_list_response.cc | 8 +- .../live_broadcast_list_response.h | 45 +- .../youtube_api/live_broadcast_snippet.cc | 8 +- .../youtube_api/live_broadcast_snippet.h | 59 +- .../youtube_api/live_broadcast_statistics.cc | 62 + .../youtube_api/live_broadcast_statistics.h | 176 + .../youtube_api/live_broadcast_status.cc | 8 +- .../youtube_api/live_broadcast_status.h | 15 +- .../youtube/google/youtube_api/live_stream.cc | 8 +- .../youtube/google/youtube_api/live_stream.h | 55 +- .../live_stream_configuration_issue.cc | 62 + .../live_stream_configuration_issue.h | 239 + .../live_stream_content_details.cc | 8 +- .../youtube_api/live_stream_content_details.h | 15 +- .../youtube_api/live_stream_health_status.cc | 65 + .../youtube_api/live_stream_health_status.h | 201 + .../youtube_api/live_stream_list_response.cc | 8 +- .../youtube_api/live_stream_list_response.h | 45 +- .../google/youtube_api/live_stream_snippet.cc | 8 +- .../google/youtube_api/live_stream_snippet.h | 49 +- .../google/youtube_api/live_stream_status.cc | 10 +- .../google/youtube_api/live_stream_status.h | 49 +- .../google/youtube_api/localized_property.cc | 8 +- .../google/youtube_api/localized_property.h | 35 +- .../google/youtube_api/localized_string.cc | 8 +- .../google/youtube_api/localized_string.h | 15 +- .../google/youtube_api/monitor_stream_info.cc | 8 +- .../google/youtube_api/monitor_stream_info.h | 15 +- .../youtube/google/youtube_api/page_info.cc | 8 +- .../youtube/google/youtube_api/page_info.h | 15 +- .../youtube/google/youtube_api/playlist.cc | 8 +- .../youtube/google/youtube_api/playlist.h | 65 +- .../youtube_api/playlist_content_details.cc | 8 +- .../youtube_api/playlist_content_details.h | 15 +- .../google/youtube_api/playlist_item.cc | 8 +- .../google/youtube_api/playlist_item.h | 45 +- .../playlist_item_content_details.cc | 8 +- .../playlist_item_content_details.h | 15 +- .../playlist_item_list_response.cc | 8 +- .../youtube_api/playlist_item_list_response.h | 45 +- .../youtube_api/playlist_item_snippet.cc | 8 +- .../youtube_api/playlist_item_snippet.h | 35 +- .../youtube_api/playlist_item_status.cc | 8 +- .../google/youtube_api/playlist_item_status.h | 15 +- .../youtube_api/playlist_list_response.cc | 8 +- .../youtube_api/playlist_list_response.h | 45 +- .../youtube_api/playlist_localization.cc | 8 +- .../youtube_api/playlist_localization.h | 15 +- .../google/youtube_api/playlist_player.cc | 8 +- .../google/youtube_api/playlist_player.h | 15 +- .../google/youtube_api/playlist_snippet.cc | 8 +- .../google/youtube_api/playlist_snippet.h | 35 +- .../google/youtube_api/playlist_status.cc | 8 +- .../google/youtube_api/playlist_status.h | 15 +- .../google/youtube_api/promoted_item.cc | 8 +- .../google/youtube_api/promoted_item.h | 35 +- .../google/youtube_api/promoted_item_id.cc | 8 +- .../google/youtube_api/promoted_item_id.h | 15 +- .../google/youtube_api/property_value.cc | 8 +- .../google/youtube_api/property_value.h | 15 +- .../youtube/google/youtube_api/resource_id.cc | 8 +- .../youtube/google/youtube_api/resource_id.h | 15 +- .../youtube_api/search_list_response.cc | 8 +- .../google/youtube_api/search_list_response.h | 45 +- .../google/youtube_api/search_result.cc | 8 +- .../google/youtube_api/search_result.h | 35 +- .../youtube_api/search_result_snippet.cc | 8 +- .../youtube_api/search_result_snippet.h | 25 +- .../google/youtube_api/subscription.cc | 8 +- .../youtube/google/youtube_api/subscription.h | 45 +- .../subscription_content_details.cc | 8 +- .../subscription_content_details.h | 15 +- .../youtube_api/subscription_list_response.cc | 8 +- .../youtube_api/subscription_list_response.h | 45 +- .../youtube_api/subscription_snippet.cc | 8 +- .../google/youtube_api/subscription_snippet.h | 35 +- .../subscription_subscriber_snippet.cc | 8 +- .../subscription_subscriber_snippet.h | 25 +- .../youtube/google/youtube_api/thumbnail.cc | 8 +- .../youtube/google/youtube_api/thumbnail.h | 15 +- .../google/youtube_api/thumbnail_details.cc | 8 +- .../google/youtube_api/thumbnail_details.h | 65 +- .../youtube_api/thumbnail_set_response.cc | 8 +- .../youtube_api/thumbnail_set_response.h | 25 +- .../google/youtube_api/token_pagination.cc | 8 +- .../google/youtube_api/token_pagination.h | 15 +- .../youtube/google/youtube_api/video.cc | 8 +- .../youtube/google/youtube_api/video.h | 175 +- .../google/youtube_api/video_abuse_report.cc | 62 + .../google/youtube_api/video_abuse_report.h | 279 + .../youtube_api/video_abuse_report_reason.cc | 64 + .../youtube_api/video_abuse_report_reason.h | 238 + ...video_abuse_report_reason_list_response.cc | 64 + .../video_abuse_report_reason_list_response.h | 273 + .../video_abuse_report_reason_snippet.cc | 64 + .../video_abuse_report_reason_snippet.h | 164 + .../video_abuse_report_secondary_reason.cc | 62 + .../video_abuse_report_secondary_reason.h | 165 + .../google/youtube_api/video_age_gating.cc | 8 +- .../google/youtube_api/video_age_gating.h | 15 +- .../google/youtube_api/video_category.cc | 8 +- .../google/youtube_api/video_category.h | 25 +- .../video_category_list_response.cc | 8 +- .../video_category_list_response.h | 45 +- .../youtube_api/video_category_snippet.cc | 8 +- .../youtube_api/video_category_snippet.h | 15 +- .../youtube_api/video_content_details.cc | 8 +- .../youtube_api/video_content_details.h | 45 +- ...ideo_content_details_region_restriction.cc | 8 +- ...video_content_details_region_restriction.h | 15 +- .../youtube_api/video_conversion_ping.cc | 8 +- .../youtube_api/video_conversion_ping.h | 15 +- .../youtube_api/video_conversion_pings.cc | 8 +- .../youtube_api/video_conversion_pings.h | 25 +- .../google/youtube_api/video_file_details.cc | 8 +- .../google/youtube_api/video_file_details.h | 45 +- .../video_file_details_audio_stream.cc | 8 +- .../video_file_details_audio_stream.h | 15 +- .../video_file_details_video_stream.cc | 8 +- .../video_file_details_video_stream.h | 15 +- .../youtube_api/video_get_rating_response.cc | 8 +- .../youtube_api/video_get_rating_response.h | 25 +- .../google/youtube_api/video_list_response.cc | 8 +- .../google/youtube_api/video_list_response.h | 45 +- .../video_live_streaming_details.cc | 8 +- .../video_live_streaming_details.h | 15 +- .../google/youtube_api/video_localization.cc | 8 +- .../google/youtube_api/video_localization.h | 15 +- .../youtube_api/video_monetization_details.cc | 8 +- .../youtube_api/video_monetization_details.h | 25 +- .../google/youtube_api/video_player.cc | 8 +- .../youtube/google/youtube_api/video_player.h | 15 +- .../youtube_api/video_processing_details.cc | 8 +- .../youtube_api/video_processing_details.h | 25 +- ..._processing_details_processing_progress.cc | 8 +- ...o_processing_details_processing_progress.h | 15 +- .../youtube_api/video_project_details.cc | 8 +- .../youtube_api/video_project_details.h | 15 +- .../google/youtube_api/video_rating.cc | 8 +- .../youtube/google/youtube_api/video_rating.h | 15 +- .../youtube_api/video_recording_details.cc | 8 +- .../youtube_api/video_recording_details.h | 25 +- .../google/youtube_api/video_snippet.cc | 8 +- .../google/youtube_api/video_snippet.h | 73 +- .../google/youtube_api/video_statistics.cc | 8 +- .../google/youtube_api/video_statistics.h | 15 +- .../google/youtube_api/video_status.cc | 8 +- .../youtube/google/youtube_api/video_status.h | 15 +- .../google/youtube_api/video_suggestions.cc | 8 +- .../google/youtube_api/video_suggestions.h | 25 +- .../video_suggestions_tag_suggestion.cc | 8 +- .../video_suggestions_tag_suggestion.h | 15 +- .../google/youtube_api/video_topic_details.cc | 8 +- .../google/youtube_api/video_topic_details.h | 15 +- .../google/youtube_api/watch_settings.cc | 8 +- .../google/youtube_api/watch_settings.h | 15 +- .../google/youtube_api/you_tube_service.cc | 1910 +- .../google/youtube_api/you_tube_service.h | 17818 +++++++++------- .../youtube/google/youtube_api/youtube_api.h | 28 +- 406 files changed, 24853 insertions(+), 17193 deletions(-) rename service_apis/calendar/{google-calendar-v3-rev121-cpp-0.1.2-doc.zip => google-calendar-v3-rev127-cpp-0.1.3-doc.zip} (86%) rename service_apis/drive/{google-drive-v2-rev163-cpp-0.1.2-doc.zip => google-drive-v2-rev172-cpp-0.1.3-doc.zip} (88%) rename service_apis/youtube/{google-youtube-v3-rev130-cpp-0.1.2-doc.zip => google-youtube-v3-rev139-cpp-0.1.3-doc.zip} (78%) create mode 100644 service_apis/youtube/google/youtube_api/caption.cc create mode 100644 service_apis/youtube/google/youtube_api/caption.h create mode 100644 service_apis/youtube/google/youtube_api/caption_list_response.cc create mode 100644 service_apis/youtube/google/youtube_api/caption_list_response.h create mode 100644 service_apis/youtube/google/youtube_api/caption_snippet.cc create mode 100644 service_apis/youtube/google/youtube_api/caption_snippet.h create mode 100644 service_apis/youtube/google/youtube_api/channel_id.cc create mode 100644 service_apis/youtube/google/youtube_api/channel_id.h create mode 100644 service_apis/youtube/google/youtube_api/channel_section_targeting.cc create mode 100644 service_apis/youtube/google/youtube_api/channel_section_targeting.h create mode 100644 service_apis/youtube/google/youtube_api/comment.cc create mode 100644 service_apis/youtube/google/youtube_api/comment.h create mode 100644 service_apis/youtube/google/youtube_api/comment_list_response.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_list_response.h create mode 100644 service_apis/youtube/google/youtube_api/comment_snippet.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_snippet.h create mode 100644 service_apis/youtube/google/youtube_api/comment_thread.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_thread.h create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_list_response.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_list_response.h create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_replies.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_replies.h create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_snippet.cc create mode 100644 service_apis/youtube/google/youtube_api/comment_thread_snippet.h create mode 100644 service_apis/youtube/google/youtube_api/live_broadcast_statistics.cc create mode 100644 service_apis/youtube/google/youtube_api/live_broadcast_statistics.h create mode 100644 service_apis/youtube/google/youtube_api/live_stream_configuration_issue.cc create mode 100644 service_apis/youtube/google/youtube_api/live_stream_configuration_issue.h create mode 100644 service_apis/youtube/google/youtube_api/live_stream_health_status.cc create mode 100644 service_apis/youtube/google/youtube_api/live_stream_health_status.h create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report.cc create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report.h create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason.cc create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason.h create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.cc create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.h create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.cc create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.h create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.cc create mode 100644 service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.h diff --git a/service_apis/calendar/descriptor.json b/service_apis/calendar/descriptor.json index 2a62316..8b2c68e 100644 --- a/service_apis/calendar/descriptor.json +++ b/service_apis/calendar/descriptor.json @@ -17,19 +17,19 @@ "canonicalName": null, "files": [ { - "downloadUrl": "/downloads/calendar/v3/121/cpp/0.1.2/google-calendar-v3-rev121-cpp-0.1.2-doc.zip", - "path": "google-calendar-v3-rev121-cpp-0.1.2-doc.zip", + "downloadUrl": "/downloads/calendar/v3/127/cpp/0.1.3/google-calendar-v3-rev127-cpp-0.1.3-doc.zip", + "path": "google-calendar-v3-rev127-cpp-0.1.3-doc.zip", "type": "documentation", - "timestamp": "2015-03-19 05:59" + "timestamp": "2015-06-03 00:03" }, { - "downloadUrl": "/downloads/calendar/v3/121/cpp/0.1.2/google-calendar-v3-rev121-cpp-0.1.2-src.zip", + "downloadUrl": "/downloads/calendar/v3/127/cpp/0.1.3/google-calendar-v3-rev127-cpp-0.1.3-src.zip", "path": "", "type": "source", - "timestamp": "2015-03-19 05:57" + "timestamp": "2015-06-03 00:03" } ], - "revision": 121, + "revision": 127, "language": "cpp", - "language_version": "0.1.2" + "language_version": "0.1.3" } \ No newline at end of file diff --git a/service_apis/calendar/google-calendar-v3-rev121-cpp-0.1.2-doc.zip b/service_apis/calendar/google-calendar-v3-rev127-cpp-0.1.3-doc.zip similarity index 86% rename from service_apis/calendar/google-calendar-v3-rev121-cpp-0.1.2-doc.zip rename to service_apis/calendar/google-calendar-v3-rev127-cpp-0.1.3-doc.zip index 9771e7f8f5c653a369b9a7164c235dd7f8171890..1f930341f3d80249d68180b57f37432606cd55f0 100644 GIT binary patch delta 198678 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

J!iOJbjxT$ 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

d-JRF(|N)IfMqT>fMVr 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

VJDB6!JwIN6|X~RF2j4F7V}Zj-!$J4QW3J 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

4mCRT;9849pz_b2qp7lQol1q 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 diff --git a/service_apis/calendar/google/calendar_api/acl.cc b/service_apis/calendar/google/calendar_api/acl.cc index 156e530..e9c813e 100644 --- a/service_apis/calendar/google/calendar_api/acl.cc +++ b/service_apis/calendar/google/calendar_api/acl.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/acl.h b/service_apis/calendar/google/calendar_api/acl.h index 4aac583..748f2c9 100644 --- a/service_apis/calendar/google/calendar_api/acl.h +++ b/service_apis/calendar/google/calendar_api/acl.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_ACL_H_ #define GOOGLE_CALENDAR_API_ACL_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class Acl : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class Acl : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class Acl : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/acl_rule.cc b/service_apis/calendar/google/calendar_api/acl_rule.cc index abaee01..62776e7 100644 --- a/service_apis/calendar/google/calendar_api/acl_rule.cc +++ b/service_apis/calendar/google/calendar_api/acl_rule.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/acl_rule.h b/service_apis/calendar/google/calendar_api/acl_rule.h index b72837b..a42fedc 100644 --- a/service_apis/calendar/google/calendar_api/acl_rule.h +++ b/service_apis/calendar/google/calendar_api/acl_rule.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_ACL_RULE_H_ #define GOOGLE_CALENDAR_API_ACL_RULE_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class AclRule : public client::JsonCppData { public: - /** * The scope of the rule. * @@ -57,7 +56,6 @@ class AclRule : public client::JsonCppData { */ class AclRuleScope : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/calendar.cc b/service_apis/calendar/google/calendar_api/calendar.cc index 65be001..287536b 100644 --- a/service_apis/calendar/google/calendar_api/calendar.cc +++ b/service_apis/calendar/google/calendar_api/calendar.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/calendar.h b/service_apis/calendar/google/calendar_api/calendar.h index d483095..d117ef3 100644 --- a/service_apis/calendar/google/calendar_api/calendar.h +++ b/service_apis/calendar/google/calendar_api/calendar.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CALENDAR_H_ #define GOOGLE_CALENDAR_API_CALENDAR_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class Calendar : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/calendar_api.h b/service_apis/calendar/google/calendar_api/calendar_api.h index 5da9974..a2dbcf9 100644 --- a/service_apis/calendar/google/calendar_api/calendar_api.h +++ b/service_apis/calendar/google/calendar_api/calendar_api.h @@ -11,10 +11,10 @@ // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CALENDAR_API_H_ #define GOOGLE_CALENDAR_API_CALENDAR_API_H_ diff --git a/service_apis/calendar/google/calendar_api/calendar_list.cc b/service_apis/calendar/google/calendar_api/calendar_list.cc index de4347a..326b2d2 100644 --- a/service_apis/calendar/google/calendar_api/calendar_list.cc +++ b/service_apis/calendar/google/calendar_api/calendar_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/calendar_list.h b/service_apis/calendar/google/calendar_api/calendar_list.h index b32537d..241aae9 100644 --- a/service_apis/calendar/google/calendar_api/calendar_list.h +++ b/service_apis/calendar/google/calendar_api/calendar_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CALENDAR_LIST_H_ #define GOOGLE_CALENDAR_API_CALENDAR_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class CalendarList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class CalendarList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class CalendarList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/calendar_list_entry.cc b/service_apis/calendar/google/calendar_api/calendar_list_entry.cc index bd5e9a5..0e6bc02 100644 --- a/service_apis/calendar/google/calendar_api/calendar_list_entry.cc +++ b/service_apis/calendar/google/calendar_api/calendar_list_entry.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/calendar_list_entry.h b/service_apis/calendar/google/calendar_api/calendar_list_entry.h index 86f26b9..38d647b 100644 --- a/service_apis/calendar/google/calendar_api/calendar_list_entry.h +++ b/service_apis/calendar/google/calendar_api/calendar_list_entry.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CALENDAR_LIST_ENTRY_H_ #define GOOGLE_CALENDAR_API_CALENDAR_LIST_ENTRY_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class CalendarListEntry : public client::JsonCppData { public: - /** * The notifications that the authenticated user is receiving for this * calendar. @@ -61,7 +60,6 @@ class CalendarListEntry : public client::JsonCppData { */ class CalendarListEntryNotificationSettings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -119,10 +117,7 @@ class CalendarListEntry : public client::JsonCppData { * Get a reference to the value of the 'notifications' * attribute. */ - const client::JsonCppArray get_notifications() const { - const Json::Value& storage = Storage("notifications"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_notifications() const; /** * Gets a reference to a mutable value of the 'notifications' @@ -132,10 +127,7 @@ class CalendarListEntry : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_notifications() { - Json::Value* storage = MutableStorage("notifications"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_notifications(); private: void operator=(const CalendarListEntryNotificationSettings&); @@ -326,10 +318,7 @@ class CalendarListEntry : public client::JsonCppData { * Get a reference to the value of the 'defaultReminders' * attribute. */ - const client::JsonCppArray get_default_reminders() const { - const Json::Value& storage = Storage("defaultReminders"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_default_reminders() const; /** * Gets a reference to a mutable value of the 'defaultReminders' @@ -339,10 +328,7 @@ class CalendarListEntry : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_defaultReminders() { - Json::Value* storage = MutableStorage("defaultReminders"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_defaultReminders(); /** * Determine if the 'deleted' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/calendar_notification.cc b/service_apis/calendar/google/calendar_api/calendar_notification.cc index b747fc4..be5ed19 100644 --- a/service_apis/calendar/google/calendar_api/calendar_notification.cc +++ b/service_apis/calendar/google/calendar_api/calendar_notification.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/calendar_notification.h b/service_apis/calendar/google/calendar_api/calendar_notification.h index 7bdac3f..979767e 100644 --- a/service_apis/calendar/google/calendar_api/calendar_notification.h +++ b/service_apis/calendar/google/calendar_api/calendar_notification.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CALENDAR_NOTIFICATION_H_ #define GOOGLE_CALENDAR_API_CALENDAR_NOTIFICATION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class CalendarNotification : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/calendar_service.cc b/service_apis/calendar/google/calendar_api/calendar_service.cc index 8534b7e..26d2b04 100644 --- a/service_apis/calendar/google/calendar_api/calendar_service.cc +++ b/service_apis/calendar/google/calendar_api/calendar_service.cc @@ -13,17 +13,16 @@ // the License. // //------------------------------------------------------------------------------ -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. //------------------------------------------------------------------------------ #include "google/calendar_api/calendar_service.h" -#include #include #include "googleapis/base/integral_types.h" #include "googleapis/client/service/client_service.h" @@ -59,7 +58,7 @@ const StringPiece CalendarService::googleapis_API_NAME("calendar"); const StringPiece CalendarService::googleapis_API_VERSION("v3"); const StringPiece CalendarService::googleapis_API_GENERATOR( - "google-apis-code-generator 1.5.0 / 0.1.2"); + "google-apis-code-generator 1.5.1 / 0.1.3"); const StringPiece CalendarService::SCOPES::CALENDAR("https://www.googleapis.com/auth/calendar"); @@ -87,44 +86,9 @@ CalendarServiceBaseRequest::~CalendarServiceBaseRequest() { } util::Status CalendarServiceBaseRequest::AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target) { - if (variable_name == "alt") { - target->append(client::CppValueToEscapedUrlValue( - alt_)); - return client::StatusOk(); - } - if (variable_name == "fields") { - target->append(client::CppValueToEscapedUrlValue( - fields_)); - return client::StatusOk(); - } - if (variable_name == "key") { - target->append(client::CppValueToEscapedUrlValue( - key_)); - return client::StatusOk(); - } - if (variable_name == "oauth_token") { - target->append(client::CppValueToEscapedUrlValue( - oauth_token_)); - return client::StatusOk(); - } - if (variable_name == "prettyPrint") { - target->append(client::CppValueToEscapedUrlValue( - pretty_print_)); - return client::StatusOk(); - } - if (variable_name == "quotaUser") { - target->append(client::CppValueToEscapedUrlValue( - quota_user_)); - return client::StatusOk(); - } - if (variable_name == "userIp") { - target->append(client::CppValueToEscapedUrlValue( - user_ip_)); - return client::StatusOk(); - } + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target) { return client::StatusInvalidArgument( StrCat("Unknown url variable='", variable_name, "'")); } @@ -151,7 +115,7 @@ util::Status CalendarServiceBaseRequest::AppendOptionalQueryParameters( sep = "&"; } if (_have_oauth_token_) { - StrAppend(target, sep, "oauthToken=", + StrAppend(target, sep, "oauth_token=", client::CppValueToEscapedUrlValue( oauth_token_)); sep = "&"; @@ -179,6 +143,15 @@ util::Status CalendarServiceBaseRequest::AppendOptionalQueryParameters( } +void CalendarServiceBaseRequest::AddJsonContentToRequest( + const client::JsonCppData *content) { + client::HttpRequest* _http_request_ = mutable_http_request(); + _http_request_->set_content_type( + client::HttpRequest::ContentType_JSON); + _http_request_->set_content_reader(content->MakeJsonReader()); +} + + // Standard constructor. AclResource_DeleteMethod::AclResource_DeleteMethod( @@ -201,13 +174,13 @@ util::Status AclResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "ruleId") { - target->append(client::CppValueToEscapedUrlValue( - rule_id_)); + client::UriTemplate::AppendValue( + rule_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -236,13 +209,13 @@ util::Status AclResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "ruleId") { - target->append(client::CppValueToEscapedUrlValue( - rule_id_)); + client::UriTemplate::AppendValue( + rule_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -258,10 +231,7 @@ AclResource_InsertMethod::AclResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "calendars/{calendarId}/acl")), calendar_id_(calendar_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -274,8 +244,8 @@ util::Status AclResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -334,8 +304,8 @@ util::Status AclResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -352,10 +322,7 @@ AclResource_PatchMethod::AclResource_PatchMethod( StrCat(_service_->service_url(), "calendars/{calendarId}/acl/{ruleId}")), calendar_id_(calendar_id.as_string()), rule_id_(rule_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -368,13 +335,13 @@ util::Status AclResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "ruleId") { - target->append(client::CppValueToEscapedUrlValue( - rule_id_)); + client::UriTemplate::AppendValue( + rule_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -391,10 +358,7 @@ AclResource_UpdateMethod::AclResource_UpdateMethod( StrCat(_service_->service_url(), "calendars/{calendarId}/acl/{ruleId}")), calendar_id_(calendar_id.as_string()), rule_id_(rule_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -407,13 +371,13 @@ util::Status AclResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "ruleId") { - target->append(client::CppValueToEscapedUrlValue( - rule_id_)); + client::UriTemplate::AppendValue( + rule_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -433,10 +397,7 @@ AclResource_WatchMethod::AclResource_WatchMethod( _have_sync_token_(false), _have_max_results_(false), _have_show_deleted_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -476,8 +437,8 @@ util::Status AclResource_WatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -505,8 +466,8 @@ util::Status CalendarListResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -534,8 +495,8 @@ util::Status CalendarListResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -551,10 +512,7 @@ CalendarListResource_InsertMethod::CalendarListResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "users/me/calendarList")), _have_color_rgb_format_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -657,10 +615,7 @@ CalendarListResource_PatchMethod::CalendarListResource_PatchMethod( StrCat(_service_->service_url(), "users/me/calendarList/{calendarId}")), calendar_id_(calendar_id.as_string()), _have_color_rgb_format_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -682,8 +637,8 @@ util::Status CalendarListResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -700,10 +655,7 @@ CalendarListResource_UpdateMethod::CalendarListResource_UpdateMethod( StrCat(_service_->service_url(), "users/me/calendarList/{calendarId}")), calendar_id_(calendar_id.as_string()), _have_color_rgb_format_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -725,8 +677,8 @@ util::Status CalendarListResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -747,10 +699,7 @@ CalendarListResource_WatchMethod::CalendarListResource_WatchMethod( _have_max_results_(false), _have_page_token_(false), _have_show_hidden_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -826,8 +775,8 @@ util::Status CalendarsResource_ClearMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -855,8 +804,8 @@ util::Status CalendarsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -884,8 +833,8 @@ util::Status CalendarsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -900,10 +849,7 @@ CalendarsResource_InsertMethod::CalendarsResource_InsertMethod( _service_, _credential_, client::HttpRequest::POST, StrCat(_service_->service_url(), "calendars")) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -919,10 +865,7 @@ CalendarsResource_PatchMethod::CalendarsResource_PatchMethod( client::HttpRequest::PATCH, StrCat(_service_->service_url(), "calendars/{calendarId}")), calendar_id_(calendar_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -935,8 +878,8 @@ util::Status CalendarsResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -952,10 +895,7 @@ CalendarsResource_UpdateMethod::CalendarsResource_UpdateMethod( client::HttpRequest::PUT, StrCat(_service_->service_url(), "calendars/{calendarId}")), calendar_id_(calendar_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -968,8 +908,8 @@ util::Status CalendarsResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -984,10 +924,7 @@ ChannelsResource_StopMethod::ChannelsResource_StopMethod( _service_, _credential_, client::HttpRequest::POST, StrCat(_service_->service_url(), "channels/stop")) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1040,13 +977,13 @@ util::Status EventsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1099,13 +1036,13 @@ util::Status EventsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1121,10 +1058,7 @@ EventsResource_ImportMethod::EventsResource_ImportMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "calendars/{calendarId}/events/import")), calendar_id_(calendar_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1137,8 +1071,8 @@ util::Status EventsResource_ImportMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1156,10 +1090,7 @@ EventsResource_InsertMethod::EventsResource_InsertMethod( calendar_id_(calendar_id.as_string()), _have_send_notifications_(false), _have_max_attendees_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1187,8 +1118,8 @@ util::Status EventsResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1283,13 +1214,13 @@ util::Status EventsResource_InstancesMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1445,8 +1376,8 @@ util::Status EventsResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1490,18 +1421,13 @@ util::Status EventsResource_MoveMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); - return client::StatusOk(); - } - if (variable_name == "destination") { - target->append(client::CppValueToEscapedUrlValue( - destination_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1521,10 +1447,7 @@ EventsResource_PatchMethod::EventsResource_PatchMethod( _have_send_notifications_(false), _have_always_include_email_(false), _have_max_attendees_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1558,13 +1481,13 @@ util::Status EventsResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1607,13 +1530,8 @@ util::Status EventsResource_QuickAddMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); - return client::StatusOk(); - } - if (variable_name == "text") { - target->append(client::CppValueToEscapedUrlValue( - text_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1633,10 +1551,7 @@ EventsResource_UpdateMethod::EventsResource_UpdateMethod( _have_send_notifications_(false), _have_always_include_email_(false), _have_max_attendees_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1670,13 +1585,13 @@ util::Status EventsResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } if (variable_name == "eventId") { - target->append(client::CppValueToEscapedUrlValue( - event_id_)); + client::UriTemplate::AppendValue( + event_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1709,10 +1624,7 @@ EventsResource_WatchMethod::EventsResource_WatchMethod( _have_private_extended_property_(false), _have_shared_extended_property_(false), _have_max_attendees_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1836,8 +1748,8 @@ util::Status EventsResource_WatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "calendarId") { - target->append(client::CppValueToEscapedUrlValue( - calendar_id_)); + client::UriTemplate::AppendValue( + calendar_id_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1852,10 +1764,7 @@ FreebusyResource_QueryMethod::FreebusyResource_QueryMethod( _service_, _credential_, client::HttpRequest::POST, StrCat(_service_->service_url(), "freeBusy")) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1883,8 +1792,8 @@ util::Status SettingsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "setting") { - target->append(client::CppValueToEscapedUrlValue( - setting_)); + client::UriTemplate::AppendValue( + setting_, config, target); return client::StatusOk(); } return CalendarServiceBaseRequest::AppendVariable( @@ -1949,10 +1858,7 @@ SettingsResource_WatchMethod::SettingsResource_WatchMethod( _have_page_token_(false), _have_max_results_(false), _have_sync_token_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. diff --git a/service_apis/calendar/google/calendar_api/calendar_service.h b/service_apis/calendar/google/calendar_api/calendar_service.h index c51016c..efbea0d 100644 --- a/service_apis/calendar/google/calendar_api/calendar_service.h +++ b/service_apis/calendar/google/calendar_api/calendar_service.h @@ -13,10 +13,10 @@ // the License. // //------------------------------------------------------------------------------ -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -24,7 +24,6 @@ #ifndef GOOGLE_CALENDAR_API_CALENDAR_SERVICE_H_ #define GOOGLE_CALENDAR_API_CALENDAR_SERVICE_H_ -#include #include #include "googleapis/base/integral_types.h" #include "googleapis/base/macros.h" @@ -60,16 +59,16 @@ using namespace googleapis; * API * Calendar API * API Versionv3 - * API Rev121 + * API Rev127 * API Docs * * https://developers.google.com/google-apps/calendar/firstapp * Discovery Namecalendar - * Generated At2015-03-19 15:57:48 UTC + * Generated At2015-06-03 10:03:42 UTC * C++ Generatorgoogle-apis-code-generator * Generator Version - * 1.5.0 / c++=0.1.2 - * Generator Build2015-01-14 17:53:03 UTC + * 1.5.1 / c++=0.1.3 + * Generator Build2015-03-26 20:30:19 UTC * * * \section ForMoreInfo For More Information @@ -253,13 +252,7 @@ class CalendarServiceBaseRequest _have_oauth_token_ = false; client::ClearCppValueHelper(&oauth_token_); } - /** - * @deprecated - * @see clear_oauth_token - */ - void clear_oauthToken() { - clear_oauth_token(); - } + /** * Gets the optional 'oauth_token' attribute. @@ -299,13 +292,7 @@ class CalendarServiceBaseRequest _have_pretty_print_ = false; client::ClearCppValueHelper(&pretty_print_); } - /** - * @deprecated - * @see clear_pretty_print - */ - void clear_prettyPrint() { - clear_pretty_print(); - } + /** * Gets the optional 'prettyPrint' attribute. @@ -331,13 +318,7 @@ class CalendarServiceBaseRequest _have_quota_user_ = false; client::ClearCppValueHelper("a_user_); } - /** - * @deprecated - * @see clear_quota_user - */ - void clear_quotaUser() { - clear_quota_user(); - } + /** * Gets the optional 'quotaUser' attribute. @@ -379,13 +360,7 @@ class CalendarServiceBaseRequest _have_user_ip_ = false; client::ClearCppValueHelper(&user_ip_); } - /** - * @deprecated - * @see clear_user_ip - */ - void clear_userIp() { - clear_user_ip(); - } + /** * Gets the optional 'userIp' attribute. @@ -438,6 +413,15 @@ class CalendarServiceBaseRequest */ virtual util::Status AppendOptionalQueryParameters(string* target); + + protected: + /** + * Prepares the method's HTTP request to send body content as JSON. + * + * Only to be used for method constructors. + */ + void AddJsonContentToRequest(const client::JsonCppData *content); + private: string alt_; string fields_; @@ -473,8 +457,6 @@ class CalendarServiceBaseRequest */ class AclResource_DeleteMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -482,15 +464,13 @@ class AclResource_DeleteMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] rule_id ACL rule identifier. - * */ AclResource_DeleteMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id); /** * Standard destructor. @@ -534,8 +514,6 @@ class AclResource_DeleteMethod : public CalendarServiceBaseRequest { */ class AclResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -543,15 +521,13 @@ class AclResource_GetMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] rule_id ACL rule identifier. - * */ AclResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id); /** * Standard destructor. @@ -609,8 +585,6 @@ class AclResource_GetMethod : public CalendarServiceBaseRequest { */ class AclResource_InsertMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -618,16 +592,13 @@ class AclResource_InsertMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to insert. - * */ AclResource_InsertMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const AclRule& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const AclRule& _content_); /** * Standard destructor. @@ -684,8 +655,6 @@ class AclResource_InsertMethod : public CalendarServiceBaseRequest { */ class AclResource_ListMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -693,12 +662,11 @@ class AclResource_ListMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ AclResource_ListMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -713,13 +681,7 @@ class AclResource_ListMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -759,13 +721,7 @@ class AclResource_ListMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -814,13 +770,7 @@ class AclResource_ListMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -848,13 +798,7 @@ class AclResource_ListMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -944,8 +888,6 @@ typedef client::ServiceRequestPager< */ class AclResource_PatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -953,19 +895,15 @@ class AclResource_PatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] rule_id ACL rule identifier. - * * @param[in] _content_ The data object to patch. - * */ AclResource_PatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id, - const AclRule& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id, + const AclRule& _content_); /** * Standard destructor. @@ -1023,8 +961,6 @@ class AclResource_PatchMethod : public CalendarServiceBaseRequest { */ class AclResource_UpdateMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1032,19 +968,15 @@ class AclResource_UpdateMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] rule_id ACL rule identifier. - * * @param[in] _content_ The data object to update. - * */ AclResource_UpdateMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id, - const AclRule& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id, + const AclRule& _content_); /** * Standard destructor. @@ -1102,8 +1034,6 @@ class AclResource_UpdateMethod : public CalendarServiceBaseRequest { */ class AclResource_WatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1111,16 +1041,13 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to watch. - * */ AclResource_WatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Channel& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Channel& _content_); /** * Standard destructor. @@ -1135,13 +1062,7 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -1181,13 +1102,7 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -1236,13 +1151,7 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -1270,13 +1179,7 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -1363,8 +1266,6 @@ class AclResource_WatchMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_DeleteMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1372,12 +1273,11 @@ class CalendarListResource_DeleteMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ CalendarListResource_DeleteMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -1420,8 +1320,6 @@ class CalendarListResource_DeleteMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1429,12 +1327,11 @@ class CalendarListResource_GetMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ CalendarListResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -1491,8 +1388,6 @@ class CalendarListResource_GetMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_InsertMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1500,13 +1395,11 @@ class CalendarListResource_InsertMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to insert. - * */ CalendarListResource_InsertMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const CalendarListEntry& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const CalendarListEntry& _content_); /** * Standard destructor. @@ -1522,13 +1415,7 @@ class CalendarListResource_InsertMethod : public CalendarServiceBaseRequest { _have_color_rgb_format_ = false; client::ClearCppValueHelper(&color_rgb_format_); } - /** - * @deprecated - * @see clear_color_rgb_format - */ - void clear_colorRgbFormat() { - clear_color_rgb_format(); - } + /** * Gets the optional 'colorRgbFormat' attribute. @@ -1608,8 +1495,6 @@ class CalendarListResource_InsertMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1618,8 +1503,8 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { * creating the method instance. */ CalendarListResource_ListMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -1634,13 +1519,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -1693,13 +1572,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -1726,13 +1599,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_min_access_role_ = false; client::ClearCppValueHelper(&min_access_role_); } - /** - * @deprecated - * @see clear_min_access_role - */ - void clear_minAccessRole() { - clear_min_access_role(); - } + /** * Gets the optional 'minAccessRole' attribute. @@ -1757,7 +1624,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { * Sets the 'minAccessRole' attribute. * * @param[in] value The minimum access role for the user in the returned - * entires. Optional. The default is no restriction. + * entries. Optional. The default is no restriction. */ void set_min_access_role(const string& value) { _have_min_access_role_ = true; @@ -1773,13 +1640,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -1807,13 +1668,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -1853,13 +1708,7 @@ class CalendarListResource_ListMethod : public CalendarServiceBaseRequest { _have_show_hidden_ = false; client::ClearCppValueHelper(&show_hidden_); } - /** - * @deprecated - * @see clear_show_hidden - */ - void clear_showHidden() { - clear_show_hidden(); - } + /** * Gets the optional 'showHidden' attribute. @@ -1951,8 +1800,6 @@ typedef client::ServiceRequestPager< */ class CalendarListResource_PatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1960,16 +1807,13 @@ class CalendarListResource_PatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to patch. - * */ CalendarListResource_PatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const CalendarListEntry& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const CalendarListEntry& _content_); /** * Standard destructor. @@ -1985,13 +1829,7 @@ class CalendarListResource_PatchMethod : public CalendarServiceBaseRequest { _have_color_rgb_format_ = false; client::ClearCppValueHelper(&color_rgb_format_); } - /** - * @deprecated - * @see clear_color_rgb_format - */ - void clear_colorRgbFormat() { - clear_color_rgb_format(); - } + /** * Gets the optional 'colorRgbFormat' attribute. @@ -2071,8 +1909,6 @@ class CalendarListResource_PatchMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_UpdateMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2080,16 +1916,13 @@ class CalendarListResource_UpdateMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to update. - * */ CalendarListResource_UpdateMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const CalendarListEntry& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const CalendarListEntry& _content_); /** * Standard destructor. @@ -2105,13 +1938,7 @@ class CalendarListResource_UpdateMethod : public CalendarServiceBaseRequest { _have_color_rgb_format_ = false; client::ClearCppValueHelper(&color_rgb_format_); } - /** - * @deprecated - * @see clear_color_rgb_format - */ - void clear_colorRgbFormat() { - clear_color_rgb_format(); - } + /** * Gets the optional 'colorRgbFormat' attribute. @@ -2192,8 +2019,6 @@ class CalendarListResource_UpdateMethod : public CalendarServiceBaseRequest { */ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2201,13 +2026,11 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to watch. - * */ CalendarListResource_WatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const Channel& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const Channel& _content_); /** * Standard destructor. @@ -2222,13 +2045,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -2281,13 +2098,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -2314,13 +2125,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_min_access_role_ = false; client::ClearCppValueHelper(&min_access_role_); } - /** - * @deprecated - * @see clear_min_access_role - */ - void clear_minAccessRole() { - clear_min_access_role(); - } + /** * Gets the optional 'minAccessRole' attribute. @@ -2345,7 +2150,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { * Sets the 'minAccessRole' attribute. * * @param[in] value The minimum access role for the user in the returned - * entires. Optional. The default is no restriction. + * entries. Optional. The default is no restriction. */ void set_min_access_role(const string& value) { _have_min_access_role_ = true; @@ -2361,13 +2166,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -2395,13 +2194,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -2441,13 +2234,7 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { _have_show_hidden_ = false; client::ClearCppValueHelper(&show_hidden_); } - /** - * @deprecated - * @see clear_show_hidden - */ - void clear_showHidden() { - clear_show_hidden(); - } + /** * Gets the optional 'showHidden' attribute. @@ -2536,8 +2323,6 @@ class CalendarListResource_WatchMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_ClearMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2545,12 +2330,11 @@ class CalendarsResource_ClearMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ CalendarsResource_ClearMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -2592,8 +2376,6 @@ class CalendarsResource_ClearMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_DeleteMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2601,12 +2383,11 @@ class CalendarsResource_DeleteMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ CalendarsResource_DeleteMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -2649,8 +2430,6 @@ class CalendarsResource_DeleteMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2658,12 +2437,11 @@ class CalendarsResource_GetMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ CalendarsResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -2720,8 +2498,6 @@ class CalendarsResource_GetMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_InsertMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2729,13 +2505,11 @@ class CalendarsResource_InsertMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to insert. - * */ CalendarsResource_InsertMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const Calendar& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const Calendar& _content_); /** * Standard destructor. @@ -2776,8 +2550,6 @@ class CalendarsResource_InsertMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_PatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2785,16 +2557,13 @@ class CalendarsResource_PatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to patch. - * */ CalendarsResource_PatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Calendar& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Calendar& _content_); /** * Standard destructor. @@ -2851,8 +2620,6 @@ class CalendarsResource_PatchMethod : public CalendarServiceBaseRequest { */ class CalendarsResource_UpdateMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2860,16 +2627,13 @@ class CalendarsResource_UpdateMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to update. - * */ CalendarsResource_UpdateMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Calendar& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Calendar& _content_); /** * Standard destructor. @@ -2929,8 +2693,6 @@ class CalendarsResource_UpdateMethod : public CalendarServiceBaseRequest { */ class ChannelsResource_StopMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2938,13 +2700,11 @@ class ChannelsResource_StopMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to stop. - * */ ChannelsResource_StopMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const Channel& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const Channel& _content_); /** * Standard destructor. @@ -2973,8 +2733,6 @@ class ChannelsResource_StopMethod : public CalendarServiceBaseRequest { */ class ColorsResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2983,8 +2741,8 @@ class ColorsResource_GetMethod : public CalendarServiceBaseRequest { * creating the method instance. */ ColorsResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -3007,7 +2765,6 @@ class ColorsResource_GetMethod : public CalendarServiceBaseRequest { } private: - DISALLOW_COPY_AND_ASSIGN(ColorsResource_GetMethod); }; @@ -3027,8 +2784,6 @@ class ColorsResource_GetMethod : public CalendarServiceBaseRequest { */ class EventsResource_DeleteMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3036,15 +2791,13 @@ class EventsResource_DeleteMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] event_id Event identifier. - * */ EventsResource_DeleteMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id); /** * Standard destructor. @@ -3060,13 +2813,7 @@ class EventsResource_DeleteMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -3131,8 +2878,6 @@ class EventsResource_DeleteMethod : public CalendarServiceBaseRequest { */ class EventsResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3140,15 +2885,13 @@ class EventsResource_GetMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] event_id Event identifier. - * */ EventsResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id); /** * Standard destructor. @@ -3163,13 +2906,7 @@ class EventsResource_GetMethod : public CalendarServiceBaseRequest { _have_time_zone_ = false; client::ClearCppValueHelper(&time_zone_); } - /** - * @deprecated - * @see clear_time_zone - */ - void clear_timeZone() { - clear_time_zone(); - } + /** * Gets the optional 'timeZone' attribute. @@ -3211,13 +2948,7 @@ class EventsResource_GetMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -3248,13 +2979,7 @@ class EventsResource_GetMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -3338,8 +3063,6 @@ class EventsResource_GetMethod : public CalendarServiceBaseRequest { */ class EventsResource_ImportMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3347,16 +3070,13 @@ class EventsResource_ImportMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to import. - * */ EventsResource_ImportMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Event& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Event& _content_); /** * Standard destructor. @@ -3413,8 +3133,6 @@ class EventsResource_ImportMethod : public CalendarServiceBaseRequest { */ class EventsResource_InsertMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3422,16 +3140,13 @@ class EventsResource_InsertMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to insert. - * */ EventsResource_InsertMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Event& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Event& _content_); /** * Standard destructor. @@ -3447,13 +3162,7 @@ class EventsResource_InsertMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -3480,13 +3189,7 @@ class EventsResource_InsertMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -3568,8 +3271,6 @@ class EventsResource_InsertMethod : public CalendarServiceBaseRequest { */ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3577,15 +3278,13 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] event_id Recurring event identifier. - * */ EventsResource_InstancesMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id); /** * Standard destructor. @@ -3600,13 +3299,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -3635,13 +3328,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_time_max_ = false; client::ClearCppValueHelper(&time_max_); } - /** - * @deprecated - * @see clear_time_max - */ - void clear_timeMax() { - clear_time_max(); - } + /** * Gets the optional 'timeMax' attribute. @@ -3669,13 +3356,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -3706,13 +3387,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -3740,13 +3415,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -3786,13 +3455,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_time_min_ = false; client::ClearCppValueHelper(&time_min_); } - /** - * @deprecated - * @see clear_time_min - */ - void clear_timeMin() { - clear_time_min(); - } + /** * Gets the optional 'timeMin' attribute. @@ -3819,13 +3482,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_time_zone_ = false; client::ClearCppValueHelper(&time_zone_); } - /** - * @deprecated - * @see clear_time_zone - */ - void clear_timeZone() { - clear_time_zone(); - } + /** * Gets the optional 'timeZone' attribute. @@ -3866,13 +3523,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_original_start_ = false; client::ClearCppValueHelper(&original_start_); } - /** - * @deprecated - * @see clear_original_start - */ - void clear_originalStart() { - clear_original_start(); - } + /** * Gets the optional 'originalStart' attribute. @@ -3913,13 +3564,7 @@ class EventsResource_InstancesMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -4021,8 +3666,6 @@ typedef client::ServiceRequestPager< */ class EventsResource_ListMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4030,12 +3673,11 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * */ EventsResource_ListMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id); /** * Standard destructor. @@ -4050,13 +3692,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_order_by_ = false; client::ClearCppValueHelper(&order_by_); } - /** - * @deprecated - * @see clear_order_by - */ - void clear_orderBy() { - clear_order_by(); - } + /** * Gets the optional 'orderBy' attribute. @@ -4098,13 +3734,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_show_hidden_invitations_ = false; client::ClearCppValueHelper(&show_hidden_invitations_); } - /** - * @deprecated - * @see clear_show_hidden_invitations - */ - void clear_showHiddenInvitations() { - clear_show_hidden_invitations(); - } + /** * Gets the optional 'showHiddenInvitations' attribute. @@ -4131,13 +3761,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -4197,13 +3821,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -4234,13 +3852,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_i_cal_uid_ = false; client::ClearCppValueHelper(&i_cal_uid_); } - /** - * @deprecated - * @see clear_i_cal_uid - */ - void clear_iCalUID() { - clear_i_cal_uid(); - } + /** * Gets the optional 'iCalUID' attribute. @@ -4281,13 +3893,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_updated_min_ = false; client::ClearCppValueHelper(&updated_min_); } - /** - * @deprecated - * @see clear_updated_min - */ - void clear_updatedMin() { - clear_updated_min(); - } + /** * Gets the optional 'updatedMin' attribute. @@ -4316,13 +3922,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_single_events_ = false; client::ClearCppValueHelper(&single_events_); } - /** - * @deprecated - * @see clear_single_events - */ - void clear_singleEvents() { - clear_single_events(); - } + /** * Gets the optional 'singleEvents' attribute. @@ -4351,13 +3951,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_time_max_ = false; client::ClearCppValueHelper(&time_max_); } - /** - * @deprecated - * @see clear_time_max - */ - void clear_timeMax() { - clear_time_max(); - } + /** * Gets the optional 'timeMax' attribute. @@ -4385,13 +3979,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -4422,13 +4010,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -4496,13 +4078,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -4542,13 +4118,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_time_min_ = false; client::ClearCppValueHelper(&time_min_); } - /** - * @deprecated - * @see clear_time_min - */ - void clear_timeMin() { - clear_time_min(); - } + /** * Gets the optional 'timeMin' attribute. @@ -4575,13 +4145,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_time_zone_ = false; client::ClearCppValueHelper(&time_zone_); } - /** - * @deprecated - * @see clear_time_zone - */ - void clear_timeZone() { - clear_time_zone(); - } + /** * Gets the optional 'timeZone' attribute. @@ -4623,13 +4187,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_private_extended_property_ = false; client::ClearCppValueHelper(&private_extended_property_); } - /** - * @deprecated - * @see clear_private_extended_property - */ - void clear_privateExtendedProperty() { - clear_private_extended_property(); - } + /** * Gets the optional 'privateExtendedProperty' attribute. @@ -4659,13 +4217,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_shared_extended_property_ = false; client::ClearCppValueHelper(&shared_extended_property_); } - /** - * @deprecated - * @see clear_shared_extended_property - */ - void clear_sharedExtendedProperty() { - clear_shared_extended_property(); - } + /** * Gets the optional 'sharedExtendedProperty' attribute. @@ -4694,13 +4246,7 @@ class EventsResource_ListMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -4816,8 +4362,6 @@ typedef client::ServiceRequestPager< */ class EventsResource_MoveMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4826,19 +4370,16 @@ class EventsResource_MoveMethod : public CalendarServiceBaseRequest { * creating the method instance. * @param[in] calendar_id Calendar identifier of the source calendar where the * event currently is on. - * * @param[in] event_id Event identifier. - * * @param[in] destination Calendar identifier of the target calendar where the * event is to be moved to. - * */ EventsResource_MoveMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const StringPiece& destination); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const StringPiece& destination); /** * Standard destructor. @@ -4854,13 +4395,7 @@ class EventsResource_MoveMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -4940,8 +4475,6 @@ class EventsResource_MoveMethod : public CalendarServiceBaseRequest { */ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4949,19 +4482,15 @@ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] event_id Event identifier. - * * @param[in] _content_ The data object to patch. - * */ EventsResource_PatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const Event& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const Event& _content_); /** * Standard destructor. @@ -4977,13 +4506,7 @@ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -5012,13 +4535,7 @@ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -5049,13 +4566,7 @@ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -5139,8 +4650,6 @@ class EventsResource_PatchMethod : public CalendarServiceBaseRequest { */ class EventsResource_QuickAddMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5148,15 +4657,13 @@ class EventsResource_QuickAddMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] text The text describing the event to be created. - * */ EventsResource_QuickAddMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& text); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& text); /** * Standard destructor. @@ -5172,13 +4679,7 @@ class EventsResource_QuickAddMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -5257,8 +4758,6 @@ class EventsResource_QuickAddMethod : public CalendarServiceBaseRequest { */ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5266,19 +4765,15 @@ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] event_id Event identifier. - * * @param[in] _content_ The data object to update. - * */ EventsResource_UpdateMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const Event& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const Event& _content_); /** * Standard destructor. @@ -5294,13 +4789,7 @@ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { _have_send_notifications_ = false; client::ClearCppValueHelper(&send_notifications_); } - /** - * @deprecated - * @see clear_send_notifications - */ - void clear_sendNotifications() { - clear_send_notifications(); - } + /** * Gets the optional 'sendNotifications' attribute. @@ -5329,13 +4818,7 @@ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -5366,13 +4849,7 @@ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -5457,8 +4934,6 @@ class EventsResource_UpdateMethod : public CalendarServiceBaseRequest { */ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5466,16 +4941,13 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] calendar_id Calendar identifier. - * * @param[in] _content_ The data object to watch. - * */ EventsResource_WatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Channel& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Channel& _content_); /** * Standard destructor. @@ -5490,13 +4962,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_order_by_ = false; client::ClearCppValueHelper(&order_by_); } - /** - * @deprecated - * @see clear_order_by - */ - void clear_orderBy() { - clear_order_by(); - } + /** * Gets the optional 'orderBy' attribute. @@ -5538,13 +5004,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_show_hidden_invitations_ = false; client::ClearCppValueHelper(&show_hidden_invitations_); } - /** - * @deprecated - * @see clear_show_hidden_invitations - */ - void clear_showHiddenInvitations() { - clear_show_hidden_invitations(); - } + /** * Gets the optional 'showHiddenInvitations' attribute. @@ -5571,13 +5031,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -5637,13 +5091,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_show_deleted_ = false; client::ClearCppValueHelper(&show_deleted_); } - /** - * @deprecated - * @see clear_show_deleted - */ - void clear_showDeleted() { - clear_show_deleted(); - } + /** * Gets the optional 'showDeleted' attribute. @@ -5674,13 +5122,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_i_cal_uid_ = false; client::ClearCppValueHelper(&i_cal_uid_); } - /** - * @deprecated - * @see clear_i_cal_uid - */ - void clear_iCalUID() { - clear_i_cal_uid(); - } + /** * Gets the optional 'iCalUID' attribute. @@ -5721,13 +5163,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_updated_min_ = false; client::ClearCppValueHelper(&updated_min_); } - /** - * @deprecated - * @see clear_updated_min - */ - void clear_updatedMin() { - clear_updated_min(); - } + /** * Gets the optional 'updatedMin' attribute. @@ -5756,13 +5192,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_single_events_ = false; client::ClearCppValueHelper(&single_events_); } - /** - * @deprecated - * @see clear_single_events - */ - void clear_singleEvents() { - clear_single_events(); - } + /** * Gets the optional 'singleEvents' attribute. @@ -5791,13 +5221,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_time_max_ = false; client::ClearCppValueHelper(&time_max_); } - /** - * @deprecated - * @see clear_time_max - */ - void clear_timeMax() { - clear_time_max(); - } + /** * Gets the optional 'timeMax' attribute. @@ -5825,13 +5249,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_always_include_email_ = false; client::ClearCppValueHelper(&always_include_email_); } - /** - * @deprecated - * @see clear_always_include_email - */ - void clear_alwaysIncludeEmail() { - clear_always_include_email(); - } + /** * Gets the optional 'alwaysIncludeEmail' attribute. @@ -5862,13 +5280,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -5936,13 +5348,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -5982,13 +5388,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_time_min_ = false; client::ClearCppValueHelper(&time_min_); } - /** - * @deprecated - * @see clear_time_min - */ - void clear_timeMin() { - clear_time_min(); - } + /** * Gets the optional 'timeMin' attribute. @@ -6015,13 +5415,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_time_zone_ = false; client::ClearCppValueHelper(&time_zone_); } - /** - * @deprecated - * @see clear_time_zone - */ - void clear_timeZone() { - clear_time_zone(); - } + /** * Gets the optional 'timeZone' attribute. @@ -6063,13 +5457,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_private_extended_property_ = false; client::ClearCppValueHelper(&private_extended_property_); } - /** - * @deprecated - * @see clear_private_extended_property - */ - void clear_privateExtendedProperty() { - clear_private_extended_property(); - } + /** * Gets the optional 'privateExtendedProperty' attribute. @@ -6099,13 +5487,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_shared_extended_property_ = false; client::ClearCppValueHelper(&shared_extended_property_); } - /** - * @deprecated - * @see clear_shared_extended_property - */ - void clear_sharedExtendedProperty() { - clear_shared_extended_property(); - } + /** * Gets the optional 'sharedExtendedProperty' attribute. @@ -6134,13 +5516,7 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { _have_max_attendees_ = false; client::ClearCppValueHelper(&max_attendees_); } - /** - * @deprecated - * @see clear_max_attendees - */ - void clear_maxAttendees() { - clear_max_attendees(); - } + /** * Gets the optional 'maxAttendees' attribute. @@ -6254,8 +5630,6 @@ class EventsResource_WatchMethod : public CalendarServiceBaseRequest { */ class FreebusyResource_QueryMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6263,13 +5637,11 @@ class FreebusyResource_QueryMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to query. - * */ FreebusyResource_QueryMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const FreeBusyRequest& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const FreeBusyRequest& _content_); /** * Standard destructor. @@ -6313,8 +5685,6 @@ class FreebusyResource_QueryMethod : public CalendarServiceBaseRequest { */ class SettingsResource_GetMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6322,12 +5692,11 @@ class SettingsResource_GetMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] setting The id of the user setting. - * */ SettingsResource_GetMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& setting); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& setting); /** * Standard destructor. @@ -6385,8 +5754,6 @@ class SettingsResource_GetMethod : public CalendarServiceBaseRequest { */ class SettingsResource_ListMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6395,8 +5762,8 @@ class SettingsResource_ListMethod : public CalendarServiceBaseRequest { * creating the method instance. */ SettingsResource_ListMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -6411,13 +5778,7 @@ class SettingsResource_ListMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -6457,13 +5818,7 @@ class SettingsResource_ListMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -6491,13 +5846,7 @@ class SettingsResource_ListMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -6603,8 +5952,6 @@ typedef client::ServiceRequestPager< */ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6612,13 +5959,11 @@ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to watch. - * */ SettingsResource_WatchMethod( - const CalendarService* _service_, - client::AuthorizationCredential* _credential_, - const Channel& _content_ - ); + const CalendarService* _service_, + client::AuthorizationCredential* _credential_, + const Channel& _content_); /** * Standard destructor. @@ -6633,13 +5978,7 @@ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -6679,13 +6018,7 @@ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -6713,13 +6046,7 @@ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { _have_sync_token_ = false; client::ClearCppValueHelper(&sync_token_); } - /** - * @deprecated - * @see clear_sync_token - */ - void clear_syncToken() { - clear_sync_token(); - } + /** * Gets the optional 'syncToken' attribute. @@ -6817,855 +6144,830 @@ class SettingsResource_WatchMethod : public CalendarServiceBaseRequest { */ class CalendarService : public client::ClientService { public: - /** - * The name of the API that this was generated from. - */ - static const StringPiece googleapis_API_NAME; - - /** - * The version of the API that this interface was generated from. - */ - static const StringPiece googleapis_API_VERSION; - - /** - * The code generator used to generate this API. - */ - static const StringPiece googleapis_API_GENERATOR; - - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class AclResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - AclResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~AclResource() {} - - - /** - * Creates a new AclResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] rule_id ACL rule identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id) const; - - /** - * Creates a new AclResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] rule_id ACL rule identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id) const; - - /** - * Creates a new AclResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const AclRule& _content_) const; - - /** - * Creates a new AclResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] calendar_id Calendar identifier. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - AclResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new AclResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] rule_id ACL rule identifier. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id, - const AclRule& _content_) const; - - /** - * Creates a new AclResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] rule_id ACL rule identifier. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& rule_id, - const AclRule& _content_) const; - - /** - * Creates a new AclResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AclResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Channel& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(AclResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class CalendarListResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - CalendarListResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~CalendarListResource() {} - - - /** - * Creates a new CalendarListResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new CalendarListResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new CalendarListResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const CalendarListEntry& _content_) const; - - /** - * Creates a new CalendarListResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * - * @see googleapis::googleapis::ServiceRequestPager - */ - CalendarListResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new CalendarListResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const CalendarListEntry& _content_) const; - - /** - * Creates a new CalendarListResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const CalendarListEntry& _content_) const; - - /** - * Creates a new CalendarListResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarListResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const Channel& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(CalendarListResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class CalendarsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - CalendarsResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~CalendarsResource() {} - - - /** - * Creates a new CalendarsResource_ClearMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_ClearMethod* NewClearMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new CalendarsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new CalendarsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new CalendarsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const Calendar& _content_) const; - - /** - * Creates a new CalendarsResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Calendar& _content_) const; - - /** - * Creates a new CalendarsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CalendarsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Calendar& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(CalendarsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChannelsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChannelsResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~ChannelsResource() {} - - - /** - * Creates a new ChannelsResource_StopMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to stop. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelsResource_StopMethod* NewStopMethod( - client::AuthorizationCredential* _credential_, - const Channel& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChannelsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ColorsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ColorsResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~ColorsResource() {} - - - /** - * Creates a new ColorsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ColorsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(ColorsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class EventsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - EventsResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~EventsResource() {} - - - /** - * Creates a new EventsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] event_id Event identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id) const; - - /** - * Creates a new EventsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] event_id Event identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id) const; - - /** - * Creates a new EventsResource_ImportMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to import. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_ImportMethod* NewImportMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Event& _content_) const; - - /** - * Creates a new EventsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Event& _content_) const; - - /** - * Creates a new EventsResource_InstancesMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] event_id Recurring event identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_InstancesMethod* NewInstancesMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] calendar_id Calendar identifier. - * - * @param[in] event_id Recurring event identifier. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - EventsResource_InstancesMethodPager* NewInstancesMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id) const; - - /** - * Creates a new EventsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] calendar_id Calendar identifier. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - EventsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id) const; - - /** - * Creates a new EventsResource_MoveMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier of the source calendar where - * the event currently is on. - * @param[in] event_id Event identifier. - * @param[in] destination Calendar identifier of the target calendar where - * the event is to be moved to. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_MoveMethod* NewMoveMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const StringPiece& destination) const; - - /** - * Creates a new EventsResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] event_id Event identifier. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const Event& _content_) const; - - /** - * Creates a new EventsResource_QuickAddMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] text The text describing the event to be created. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_QuickAddMethod* NewQuickAddMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& text) const; - - /** - * Creates a new EventsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] event_id Event identifier. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const StringPiece& event_id, - const Event& _content_) const; - - /** - * Creates a new EventsResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] calendar_id Calendar identifier. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - EventsResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& calendar_id, - const Channel& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(EventsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class FreebusyResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - FreebusyResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~FreebusyResource() {} - - - /** - * Creates a new FreebusyResource_QueryMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to query. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FreebusyResource_QueryMethod* NewQueryMethod( - client::AuthorizationCredential* _credential_, - const FreeBusyRequest& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(FreebusyResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class SettingsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - SettingsResource(CalendarService* service); - - /** - * Standard destructor. - */ - ~SettingsResource() {} - - - /** - * Creates a new SettingsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] setting The id of the user setting. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SettingsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& setting) const; - - /** - * Creates a new SettingsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SettingsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * - * @see googleapis::googleapis::ServiceRequestPager - */ - SettingsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new SettingsResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SettingsResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const Channel& _content_) const; - - private: - CalendarService* service_; - - DISALLOW_COPY_AND_ASSIGN(SettingsResource); - }; + /** + * The name of the API that this was generated from. + */ + static const StringPiece googleapis_API_NAME; + + /** + * The version of the API that this interface was generated from. + */ + static const StringPiece googleapis_API_VERSION; + + /** + * The code generator used to generate this API. + */ + static const StringPiece googleapis_API_GENERATOR; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class AclResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit AclResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~AclResource() {} + + + /** + * Creates a new AclResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] rule_id ACL rule identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id) const; + + /** + * Creates a new AclResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] rule_id ACL rule identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id) const; + + /** + * Creates a new AclResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const AclRule& _content_) const; + + /** + * Creates a new AclResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + AclResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new AclResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] rule_id ACL rule identifier. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id, + const AclRule& _content_) const; + + /** + * Creates a new AclResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] rule_id ACL rule identifier. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& rule_id, + const AclRule& _content_) const; + + /** + * Creates a new AclResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AclResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Channel& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(AclResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CalendarListResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit CalendarListResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~CalendarListResource() {} + + + /** + * Creates a new CalendarListResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new CalendarListResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new CalendarListResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const CalendarListEntry& _content_) const; + + /** + * Creates a new CalendarListResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * + * @see googleapis::googleapis::ServiceRequestPager + */ + CalendarListResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a new CalendarListResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const CalendarListEntry& _content_) const; + + /** + * Creates a new CalendarListResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const CalendarListEntry& _content_) const; + + /** + * Creates a new CalendarListResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarListResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const Channel& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(CalendarListResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CalendarsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit CalendarsResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~CalendarsResource() {} + + + /** + * Creates a new CalendarsResource_ClearMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_ClearMethod* NewClearMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new CalendarsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new CalendarsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new CalendarsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const Calendar& _content_) const; + + /** + * Creates a new CalendarsResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Calendar& _content_) const; + + /** + * Creates a new CalendarsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CalendarsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Calendar& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(CalendarsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ChannelsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ChannelsResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~ChannelsResource() {} + + + /** + * Creates a new ChannelsResource_StopMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to stop. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChannelsResource_StopMethod* NewStopMethod( + client::AuthorizationCredential* _credential_, + const Channel& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(ChannelsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ColorsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ColorsResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~ColorsResource() {} + + + /** + * Creates a new ColorsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ColorsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(ColorsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class EventsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit EventsResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~EventsResource() {} + + + /** + * Creates a new EventsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] event_id Event identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id) const; + + /** + * Creates a new EventsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] event_id Event identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id) const; + + /** + * Creates a new EventsResource_ImportMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to import. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_ImportMethod* NewImportMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Event& _content_) const; + + /** + * Creates a new EventsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Event& _content_) const; + + /** + * Creates a new EventsResource_InstancesMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] event_id Recurring event identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_InstancesMethod* NewInstancesMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * + * @param[in] event_id Recurring event identifier. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + EventsResource_InstancesMethodPager* NewInstancesMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id) const; + + /** + * Creates a new EventsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + EventsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id) const; + + /** + * Creates a new EventsResource_MoveMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier of the source calendar where + * the event currently is on. + * @param[in] event_id Event identifier. + * @param[in] destination Calendar identifier of the target calendar where + * the event is to be moved to. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_MoveMethod* NewMoveMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const StringPiece& destination) const; + + /** + * Creates a new EventsResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] event_id Event identifier. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const Event& _content_) const; + + /** + * Creates a new EventsResource_QuickAddMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] text The text describing the event to be created. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_QuickAddMethod* NewQuickAddMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& text) const; + + /** + * Creates a new EventsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] event_id Event identifier. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const StringPiece& event_id, + const Event& _content_) const; + + /** + * Creates a new EventsResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] calendar_id Calendar identifier. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + EventsResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& calendar_id, + const Channel& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(EventsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class FreebusyResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit FreebusyResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~FreebusyResource() {} + + + /** + * Creates a new FreebusyResource_QueryMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to query. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FreebusyResource_QueryMethod* NewQueryMethod( + client::AuthorizationCredential* _credential_, + const FreeBusyRequest& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(FreebusyResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class SettingsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit SettingsResource(CalendarService* service); + + /** + * Standard destructor. + */ + ~SettingsResource() {} + + + /** + * Creates a new SettingsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] setting The id of the user setting. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + SettingsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& setting) const; + + /** + * Creates a new SettingsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + SettingsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * + * @see googleapis::googleapis::ServiceRequestPager + */ + SettingsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a new SettingsResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + SettingsResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const Channel& _content_) const; + + private: + CalendarService* service_; + + DISALLOW_COPY_AND_ASSIGN(SettingsResource); + }; + /** @@ -7779,7 +7081,7 @@ class CalendarService : public client::ClientService { static const StringPiece CALENDAR_READONLY; private: - SCOPES(); // Never instantiated. + SCOPES(); // Never instantiated. ~SCOPES(); // Never instantiated. }; diff --git a/service_apis/calendar/google/calendar_api/channel.cc b/service_apis/calendar/google/calendar_api/channel.cc index 8e1793a..569cc7c 100644 --- a/service_apis/calendar/google/calendar_api/channel.cc +++ b/service_apis/calendar/google/calendar_api/channel.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/channel.h b/service_apis/calendar/google/calendar_api/channel.h index 0010a81..6d2e8ad 100644 --- a/service_apis/calendar/google/calendar_api/channel.h +++ b/service_apis/calendar/google/calendar_api/channel.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_CHANNEL_H_ #define GOOGLE_CALENDAR_API_CHANNEL_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class Channel : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/color_definition.cc b/service_apis/calendar/google/calendar_api/color_definition.cc index 8c2ce93..10e31d0 100644 --- a/service_apis/calendar/google/calendar_api/color_definition.cc +++ b/service_apis/calendar/google/calendar_api/color_definition.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/color_definition.h b/service_apis/calendar/google/calendar_api/color_definition.h index af90aa1..6118d6e 100644 --- a/service_apis/calendar/google/calendar_api/color_definition.h +++ b/service_apis/calendar/google/calendar_api/color_definition.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_COLOR_DEFINITION_H_ #define GOOGLE_CALENDAR_API_COLOR_DEFINITION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ColorDefinition : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/colors.cc b/service_apis/calendar/google/calendar_api/colors.cc index 4864729..ccdc2dd 100644 --- a/service_apis/calendar/google/calendar_api/colors.cc +++ b/service_apis/calendar/google/calendar_api/colors.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/colors.h b/service_apis/calendar/google/calendar_api/colors.h index 8b48d3a..f2ef122 100644 --- a/service_apis/calendar/google/calendar_api/colors.h +++ b/service_apis/calendar/google/calendar_api/colors.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_COLORS_H_ #define GOOGLE_CALENDAR_API_COLORS_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class Colors : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -108,10 +107,7 @@ class Colors : public client::JsonCppData { /** * Get a reference to the value of the 'calendar' attribute. */ - const client::JsonCppAssociativeArray get_calendar() const { - const Json::Value& storage = Storage("calendar"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_calendar() const; /** * Gets a reference to a mutable value of the 'calendar' @@ -123,10 +119,7 @@ class Colors : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_calendar() { - Json::Value* storage = MutableStorage("calendar"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_calendar(); /** * Determine if the 'event' attribute was set. @@ -148,10 +141,7 @@ class Colors : public client::JsonCppData { /** * Get a reference to the value of the 'event' attribute. */ - const client::JsonCppAssociativeArray get_event() const { - const Json::Value& storage = Storage("event"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_event() const; /** * Gets a reference to a mutable value of the 'event' property. @@ -162,10 +152,7 @@ class Colors : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_event() { - Json::Value* storage = MutableStorage("event"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_event(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/error.cc b/service_apis/calendar/google/calendar_api/error.cc index 7d11a57..1cb0bf0 100644 --- a/service_apis/calendar/google/calendar_api/error.cc +++ b/service_apis/calendar/google/calendar_api/error.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/error.h b/service_apis/calendar/google/calendar_api/error.h index c9362e2..d86dc63 100644 --- a/service_apis/calendar/google/calendar_api/error.h +++ b/service_apis/calendar/google/calendar_api/error.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_ERROR_H_ #define GOOGLE_CALENDAR_API_ERROR_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class Error : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/event.cc b/service_apis/calendar/google/calendar_api/event.cc index 6f24eac..41f1587 100644 --- a/service_apis/calendar/google/calendar_api/event.cc +++ b/service_apis/calendar/google/calendar_api/event.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/event.h b/service_apis/calendar/google/calendar_api/event.h index 1c9cfd8..df59663 100644 --- a/service_apis/calendar/google/calendar_api/event.h +++ b/service_apis/calendar/google/calendar_api/event.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENT_H_ #define GOOGLE_CALENDAR_API_EVENT_H_ @@ -55,7 +55,6 @@ using namespace googleapis; */ class Event : public client::JsonCppData { public: - /** * The creator of the event. Read-only. * @@ -63,7 +62,6 @@ class Event : public client::JsonCppData { */ class EventCreator : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -258,7 +256,6 @@ class Event : public client::JsonCppData { */ class EventExtendedProperties : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -382,7 +379,6 @@ class Event : public client::JsonCppData { */ class EventGadget : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -735,7 +731,6 @@ class Event : public client::JsonCppData { */ class EventOrganizer : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -930,7 +925,6 @@ class Event : public client::JsonCppData { */ class EventReminders : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -986,10 +980,7 @@ class Event : public client::JsonCppData { /** * Get a reference to the value of the 'overrides' attribute. */ - const client::JsonCppArray get_overrides() const { - const Json::Value& storage = Storage("overrides"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_overrides() const; /** * Gets a reference to a mutable value of the 'overrides' @@ -1001,10 +992,7 @@ class Event : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_overrides() { - Json::Value* storage = MutableStorage("overrides"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_overrides(); /** * Determine if the 'useDefault' attribute was set. @@ -1055,7 +1043,6 @@ class Event : public client::JsonCppData { */ class EventSource : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -1263,10 +1250,7 @@ class Event : public client::JsonCppData { /** * Get a reference to the value of the 'attendees' attribute. */ - const client::JsonCppArray get_attendees() const { - const Json::Value& storage = Storage("attendees"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_attendees() const; /** * Gets a reference to a mutable value of the 'attendees' @@ -1276,10 +1260,7 @@ class Event : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_attendees() { - Json::Value* storage = MutableStorage("attendees"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_attendees(); /** * Determine if the 'attendeesOmitted' attribute was set. @@ -1490,10 +1471,7 @@ class Event : public client::JsonCppData { /** * Get a reference to the value of the 'end' attribute. */ - const EventDateTime get_end() const { - const Json::Value& storage = Storage("end"); - return client::JsonValueToCppValueHelper(storage); - } + const EventDateTime get_end() const; /** * Gets a reference to a mutable value of the 'end' property. @@ -1503,10 +1481,7 @@ class Event : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - EventDateTime mutable_end() { - Json::Value* storage = MutableStorage("end"); - return client::JsonValueToMutableCppValueHelper(storage); - } + EventDateTime mutable_end(); /** * Determine if the 'endTimeUnspecified' attribute was set. @@ -2108,10 +2083,7 @@ class Event : public client::JsonCppData { * Get a reference to the value of the 'originalStartTime' * attribute. */ - const EventDateTime get_original_start_time() const { - const Json::Value& storage = Storage("originalStartTime"); - return client::JsonValueToCppValueHelper(storage); - } + const EventDateTime get_original_start_time() const; /** * Gets a reference to a mutable value of the 'originalStartTime' @@ -2123,10 +2095,7 @@ class Event : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - EventDateTime mutable_originalStartTime() { - Json::Value* storage = MutableStorage("originalStartTime"); - return client::JsonValueToMutableCppValueHelper(storage); - } + EventDateTime mutable_originalStartTime(); /** * Determine if the 'privateCopy' attribute was set. @@ -2377,10 +2346,7 @@ class Event : public client::JsonCppData { /** * Get a reference to the value of the 'start' attribute. */ - const EventDateTime get_start() const { - const Json::Value& storage = Storage("start"); - return client::JsonValueToCppValueHelper(storage); - } + const EventDateTime get_start() const; /** * Gets a reference to a mutable value of the 'start' property. @@ -2390,10 +2356,7 @@ class Event : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - EventDateTime mutable_start() { - Json::Value* storage = MutableStorage("start"); - return client::JsonValueToMutableCppValueHelper(storage); - } + EventDateTime mutable_start(); /** * Determine if the 'status' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/event_attachment.cc b/service_apis/calendar/google/calendar_api/event_attachment.cc index 2ea5a46..c3f20d6 100644 --- a/service_apis/calendar/google/calendar_api/event_attachment.cc +++ b/service_apis/calendar/google/calendar_api/event_attachment.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/event_attachment.h b/service_apis/calendar/google/calendar_api/event_attachment.h index e220f13..ea10b34 100644 --- a/service_apis/calendar/google/calendar_api/event_attachment.h +++ b/service_apis/calendar/google/calendar_api/event_attachment.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENT_ATTACHMENT_H_ #define GOOGLE_CALENDAR_API_EVENT_ATTACHMENT_H_ @@ -48,7 +48,6 @@ using namespace googleapis; */ class EventAttachment : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/event_attendee.cc b/service_apis/calendar/google/calendar_api/event_attendee.cc index 8533ec4..9e2e1b7 100644 --- a/service_apis/calendar/google/calendar_api/event_attendee.cc +++ b/service_apis/calendar/google/calendar_api/event_attendee.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/event_attendee.h b/service_apis/calendar/google/calendar_api/event_attendee.h index bdaf6fc..e757076 100644 --- a/service_apis/calendar/google/calendar_api/event_attendee.h +++ b/service_apis/calendar/google/calendar_api/event_attendee.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENT_ATTENDEE_H_ #define GOOGLE_CALENDAR_API_EVENT_ATTENDEE_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class EventAttendee : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/event_date_time.cc b/service_apis/calendar/google/calendar_api/event_date_time.cc index 4f49aad..4c1977e 100644 --- a/service_apis/calendar/google/calendar_api/event_date_time.cc +++ b/service_apis/calendar/google/calendar_api/event_date_time.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/event_date_time.h b/service_apis/calendar/google/calendar_api/event_date_time.h index b95286f..9406c0a 100644 --- a/service_apis/calendar/google/calendar_api/event_date_time.h +++ b/service_apis/calendar/google/calendar_api/event_date_time.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENT_DATE_TIME_H_ #define GOOGLE_CALENDAR_API_EVENT_DATE_TIME_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class EventDateTime : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/event_reminder.cc b/service_apis/calendar/google/calendar_api/event_reminder.cc index 277f178..30f2965 100644 --- a/service_apis/calendar/google/calendar_api/event_reminder.cc +++ b/service_apis/calendar/google/calendar_api/event_reminder.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/event_reminder.h b/service_apis/calendar/google/calendar_api/event_reminder.h index ba6f3de..fd95716 100644 --- a/service_apis/calendar/google/calendar_api/event_reminder.h +++ b/service_apis/calendar/google/calendar_api/event_reminder.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENT_REMINDER_H_ #define GOOGLE_CALENDAR_API_EVENT_REMINDER_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class EventReminder : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/events.cc b/service_apis/calendar/google/calendar_api/events.cc index 7591614..0c122b9 100644 --- a/service_apis/calendar/google/calendar_api/events.cc +++ b/service_apis/calendar/google/calendar_api/events.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/events.h b/service_apis/calendar/google/calendar_api/events.h index 458c84f..220e376 100644 --- a/service_apis/calendar/google/calendar_api/events.h +++ b/service_apis/calendar/google/calendar_api/events.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_EVENTS_H_ #define GOOGLE_CALENDAR_API_EVENTS_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class Events : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -164,10 +163,7 @@ class Events : public client::JsonCppData { * Get a reference to the value of the 'defaultReminders' * attribute. */ - const client::JsonCppArray get_default_reminders() const { - const Json::Value& storage = Storage("defaultReminders"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_default_reminders() const; /** * Gets a reference to a mutable value of the 'defaultReminders' @@ -179,10 +175,7 @@ class Events : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_defaultReminders() { - Json::Value* storage = MutableStorage("defaultReminders"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_defaultReminders(); /** * Determine if the 'description' attribute was set. @@ -278,10 +271,7 @@ class Events : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -290,10 +280,7 @@ class Events : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/free_busy_calendar.cc b/service_apis/calendar/google/calendar_api/free_busy_calendar.cc index e592537..4dfad0e 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_calendar.cc +++ b/service_apis/calendar/google/calendar_api/free_busy_calendar.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/free_busy_calendar.h b/service_apis/calendar/google/calendar_api/free_busy_calendar.h index 3a85f23..9e339c9 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_calendar.h +++ b/service_apis/calendar/google/calendar_api/free_busy_calendar.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_FREE_BUSY_CALENDAR_H_ #define GOOGLE_CALENDAR_API_FREE_BUSY_CALENDAR_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class FreeBusyCalendar : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -107,10 +106,7 @@ class FreeBusyCalendar : public client::JsonCppData { /** * Get a reference to the value of the 'busy' attribute. */ - const client::JsonCppArray get_busy() const { - const Json::Value& storage = Storage("busy"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_busy() const; /** * Gets a reference to a mutable value of the 'busy' property. @@ -119,10 +115,7 @@ class FreeBusyCalendar : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_busy() { - Json::Value* storage = MutableStorage("busy"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_busy(); /** * Determine if the 'errors' attribute was set. @@ -144,10 +137,7 @@ class FreeBusyCalendar : public client::JsonCppData { /** * Get a reference to the value of the 'errors' attribute. */ - const client::JsonCppArray get_errors() const { - const Json::Value& storage = Storage("errors"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_errors() const; /** * Gets a reference to a mutable value of the 'errors' property. @@ -156,10 +146,7 @@ class FreeBusyCalendar : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_errors() { - Json::Value* storage = MutableStorage("errors"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_errors(); private: void operator=(const FreeBusyCalendar&); diff --git a/service_apis/calendar/google/calendar_api/free_busy_group.cc b/service_apis/calendar/google/calendar_api/free_busy_group.cc index a38b486..ae2f320 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_group.cc +++ b/service_apis/calendar/google/calendar_api/free_busy_group.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/free_busy_group.h b/service_apis/calendar/google/calendar_api/free_busy_group.h index 623c3db..d3571dc 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_group.h +++ b/service_apis/calendar/google/calendar_api/free_busy_group.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_FREE_BUSY_GROUP_H_ #define GOOGLE_CALENDAR_API_FREE_BUSY_GROUP_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class FreeBusyGroup : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -145,10 +144,7 @@ class FreeBusyGroup : public client::JsonCppData { /** * Get a reference to the value of the 'errors' attribute. */ - const client::JsonCppArray get_errors() const { - const Json::Value& storage = Storage("errors"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_errors() const; /** * Gets a reference to a mutable value of the 'errors' property. @@ -157,10 +153,7 @@ class FreeBusyGroup : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_errors() { - Json::Value* storage = MutableStorage("errors"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_errors(); private: void operator=(const FreeBusyGroup&); diff --git a/service_apis/calendar/google/calendar_api/free_busy_request.cc b/service_apis/calendar/google/calendar_api/free_busy_request.cc index a675d6c..6a6a1e9 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_request.cc +++ b/service_apis/calendar/google/calendar_api/free_busy_request.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/free_busy_request.h b/service_apis/calendar/google/calendar_api/free_busy_request.h index 3823b21..7c23e45 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_request.h +++ b/service_apis/calendar/google/calendar_api/free_busy_request.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_FREE_BUSY_REQUEST_H_ #define GOOGLE_CALENDAR_API_FREE_BUSY_REQUEST_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class FreeBusyRequest : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -186,10 +185,7 @@ class FreeBusyRequest : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -198,10 +194,7 @@ class FreeBusyRequest : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'timeMax' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/free_busy_request_item.cc b/service_apis/calendar/google/calendar_api/free_busy_request_item.cc index c2a5b8f..e0333ce 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_request_item.cc +++ b/service_apis/calendar/google/calendar_api/free_busy_request_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/free_busy_request_item.h b/service_apis/calendar/google/calendar_api/free_busy_request_item.h index 45e8994..5b28603 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_request_item.h +++ b/service_apis/calendar/google/calendar_api/free_busy_request_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_FREE_BUSY_REQUEST_ITEM_H_ #define GOOGLE_CALENDAR_API_FREE_BUSY_REQUEST_ITEM_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class FreeBusyRequestItem : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/free_busy_response.cc b/service_apis/calendar/google/calendar_api/free_busy_response.cc index 00935f9..d457dff 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_response.cc +++ b/service_apis/calendar/google/calendar_api/free_busy_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/free_busy_response.h b/service_apis/calendar/google/calendar_api/free_busy_response.h index 6a7fa83..558fcac 100644 --- a/service_apis/calendar/google/calendar_api/free_busy_response.h +++ b/service_apis/calendar/google/calendar_api/free_busy_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_FREE_BUSY_RESPONSE_H_ #define GOOGLE_CALENDAR_API_FREE_BUSY_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class FreeBusyResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -109,10 +108,7 @@ class FreeBusyResponse : public client::JsonCppData { /** * Get a reference to the value of the 'calendars' attribute. */ - const client::JsonCppAssociativeArray get_calendars() const { - const Json::Value& storage = Storage("calendars"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_calendars() const; /** * Gets a reference to a mutable value of the 'calendars' @@ -122,10 +118,7 @@ class FreeBusyResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_calendars() { - Json::Value* storage = MutableStorage("calendars"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_calendars(); /** * Determine if the 'groups' attribute was set. @@ -147,10 +140,7 @@ class FreeBusyResponse : public client::JsonCppData { /** * Get a reference to the value of the 'groups' attribute. */ - const client::JsonCppAssociativeArray get_groups() const { - const Json::Value& storage = Storage("groups"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_groups() const; /** * Gets a reference to a mutable value of the 'groups' property. @@ -159,10 +149,7 @@ class FreeBusyResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_groups() { - Json::Value* storage = MutableStorage("groups"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_groups(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/setting.cc b/service_apis/calendar/google/calendar_api/setting.cc index c1f6492..a356816 100644 --- a/service_apis/calendar/google/calendar_api/setting.cc +++ b/service_apis/calendar/google/calendar_api/setting.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/setting.h b/service_apis/calendar/google/calendar_api/setting.h index adfdd54..1e24fdd 100644 --- a/service_apis/calendar/google/calendar_api/setting.h +++ b/service_apis/calendar/google/calendar_api/setting.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_SETTING_H_ #define GOOGLE_CALENDAR_API_SETTING_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class Setting : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/calendar/google/calendar_api/settings.cc b/service_apis/calendar/google/calendar_api/settings.cc index f3ecd06..8e69a1d 100644 --- a/service_apis/calendar/google/calendar_api/settings.cc +++ b/service_apis/calendar/google/calendar_api/settings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/settings.h b/service_apis/calendar/google/calendar_api/settings.h index 92b26ca..01a9fda 100644 --- a/service_apis/calendar/google/calendar_api/settings.h +++ b/service_apis/calendar/google/calendar_api/settings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_SETTINGS_H_ #define GOOGLE_CALENDAR_API_SETTINGS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class Settings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class Settings : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class Settings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/calendar/google/calendar_api/time_period.cc b/service_apis/calendar/google/calendar_api/time_period.cc index 04e59ee..0a7b27a 100644 --- a/service_apis/calendar/google/calendar_api/time_period.cc +++ b/service_apis/calendar/google/calendar_api/time_period.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/calendar/google/calendar_api/time_period.h b/service_apis/calendar/google/calendar_api/time_period.h index a312dbb..d134ced 100644 --- a/service_apis/calendar/google/calendar_api/time_period.h +++ b/service_apis/calendar/google/calendar_api/time_period.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-19, 15:57:48 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-03, 10:03:42 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Calendar API (calendar/v3) // Generated from: // Version: v3 -// Revision: 121 +// Revision: 127 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_CALENDAR_API_TIME_PERIOD_H_ #define GOOGLE_CALENDAR_API_TIME_PERIOD_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class TimePeriod : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/descriptor.json b/service_apis/drive/descriptor.json index 4ca75e8..cd8d1e4 100644 --- a/service_apis/drive/descriptor.json +++ b/service_apis/drive/descriptor.json @@ -17,19 +17,19 @@ "canonicalName": null, "files": [ { - "downloadUrl": "/downloads/drive/v2/163/cpp/0.1.2/google-drive-v2-rev163-cpp-0.1.2-doc.zip", - "path": "google-drive-v2-rev163-cpp-0.1.2-doc.zip", + "downloadUrl": "/downloads/drive/v2/172/cpp/0.1.3/google-drive-v2-rev172-cpp-0.1.3-doc.zip", + "path": "google-drive-v2-rev172-cpp-0.1.3-doc.zip", "type": "documentation", - "timestamp": "2015-03-24 05:54" + "timestamp": "2015-06-04 06:17" }, { - "downloadUrl": "/downloads/drive/v2/163/cpp/0.1.2/google-drive-v2-rev163-cpp-0.1.2-src.zip", + "downloadUrl": "/downloads/drive/v2/172/cpp/0.1.3/google-drive-v2-rev172-cpp-0.1.3-src.zip", "path": "", "type": "source", - "timestamp": "2015-03-24 06:34" + "timestamp": "2015-06-04 06:56" } ], - "revision": 163, + "revision": 172, "language": "cpp", - "language_version": "0.1.2" + "language_version": "0.1.3" } \ No newline at end of file diff --git a/service_apis/drive/google-drive-v2-rev163-cpp-0.1.2-doc.zip b/service_apis/drive/google-drive-v2-rev172-cpp-0.1.3-doc.zip similarity index 88% rename from service_apis/drive/google-drive-v2-rev163-cpp-0.1.2-doc.zip rename to service_apis/drive/google-drive-v2-rev172-cpp-0.1.3-doc.zip index 9cd1ba5fe9a768bde3cba89851cfa1643b609f7b..b7da9b4cc818bda59f587740469e7d836bcf73ff 100644 GIT binary patch delta 298988 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 z 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�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

*QB1V61CbNl{)1py8`gNrLdftBN+B*eNxt9P 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

FW*YDQdSPe6qV*@MzA{U>8~) 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

    Z!*sKih7=EN1pPv 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

    $1>w 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

    b{QBn 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 zRR`9S#;wo3xU7domainSharingPolicy' attribute. * - * The domain sharing policy for the current user. + * The domain sharing policy for the current user. Possible values are: + * - ALLOWED + * - ALLOWED_WITH_WARNING + * - INCOMING_ONLY + * - DISALLOWED. * * @param[in] value The new value. */ @@ -1823,10 +1819,7 @@ class About : public client::JsonCppData { /** * Get a reference to the value of the 'user' attribute. */ - const User get_user() const { - const Json::Value& storage = Storage("user"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_user() const; /** * Gets a reference to a mutable value of the 'user' property. @@ -1835,10 +1828,7 @@ class About : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_user() { - Json::Value* storage = MutableStorage("user"); - return client::JsonValueToMutableCppValueHelper(storage); - } + User mutable_user(); private: void operator=(const About&); diff --git a/service_apis/drive/google/drive_api/app.cc b/service_apis/drive/google/drive_api/app.cc index e512cdf..71addde 100644 --- a/service_apis/drive/google/drive_api/app.cc +++ b/service_apis/drive/google/drive_api/app.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/app.h b/service_apis/drive/google/drive_api/app.h index d7b8720..35934cc 100644 --- a/service_apis/drive/google/drive_api/app.h +++ b/service_apis/drive/google/drive_api/app.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_APP_H_ #define GOOGLE_DRIVE_API_APP_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class App : public client::JsonCppData { public: - /** * No description provided. * @@ -60,7 +59,6 @@ class App : public client::JsonCppData { */ class AppIcons : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/app_list.cc b/service_apis/drive/google/drive_api/app_list.cc index 94740af..3393b37 100644 --- a/service_apis/drive/google/drive_api/app_list.cc +++ b/service_apis/drive/google/drive_api/app_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/app_list.h b/service_apis/drive/google/drive_api/app_list.h index a5320ce..c588f83 100644 --- a/service_apis/drive/google/drive_api/app_list.h +++ b/service_apis/drive/google/drive_api/app_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_APP_LIST_H_ #define GOOGLE_DRIVE_API_APP_LIST_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class AppList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -184,10 +183,7 @@ class AppList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -196,10 +192,7 @@ class AppList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/change.cc b/service_apis/drive/google/drive_api/change.cc index 37599e9..8b46364 100644 --- a/service_apis/drive/google/drive_api/change.cc +++ b/service_apis/drive/google/drive_api/change.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/change.h b/service_apis/drive/google/drive_api/change.h index f212361..81f0eb5 100644 --- a/service_apis/drive/google/drive_api/change.h +++ b/service_apis/drive/google/drive_api/change.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_CHANGE_H_ #define GOOGLE_DRIVE_API_CHANGE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class Change : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -146,10 +145,7 @@ class Change : public client::JsonCppData { /** * Get a reference to the value of the 'file' attribute. */ - const File get_file() const { - const Json::Value& storage = Storage("file"); - return client::JsonValueToCppValueHelper(storage); - } + const File get_file() const; /** * Gets a reference to a mutable value of the 'file' property. @@ -158,10 +154,7 @@ class Change : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - File mutable_file() { - Json::Value* storage = MutableStorage("file"); - return client::JsonValueToMutableCppValueHelper(storage); - } + File mutable_file(); /** * Determine if the 'fileId' attribute was set. diff --git a/service_apis/drive/google/drive_api/change_list.cc b/service_apis/drive/google/drive_api/change_list.cc index 4a0b279..2f4b60e 100644 --- a/service_apis/drive/google/drive_api/change_list.cc +++ b/service_apis/drive/google/drive_api/change_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/change_list.h b/service_apis/drive/google/drive_api/change_list.h index 8d160a0..24dadaa 100644 --- a/service_apis/drive/google/drive_api/change_list.h +++ b/service_apis/drive/google/drive_api/change_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_CHANGE_LIST_H_ #define GOOGLE_DRIVE_API_CHANGE_LIST_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class ChangeList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -145,10 +144,7 @@ class ChangeList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -157,10 +153,7 @@ class ChangeList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/channel.cc b/service_apis/drive/google/drive_api/channel.cc index 3d958f2..9055e28 100644 --- a/service_apis/drive/google/drive_api/channel.cc +++ b/service_apis/drive/google/drive_api/channel.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/channel.h b/service_apis/drive/google/drive_api/channel.h index cb0301e..f5d12e9 100644 --- a/service_apis/drive/google/drive_api/channel.h +++ b/service_apis/drive/google/drive_api/channel.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_CHANNEL_H_ #define GOOGLE_DRIVE_API_CHANNEL_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class Channel : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/child_list.cc b/service_apis/drive/google/drive_api/child_list.cc index 09eeb5f..8ba4ecb 100644 --- a/service_apis/drive/google/drive_api/child_list.cc +++ b/service_apis/drive/google/drive_api/child_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/child_list.h b/service_apis/drive/google/drive_api/child_list.h index 267bcb9..49186e2 100644 --- a/service_apis/drive/google/drive_api/child_list.h +++ b/service_apis/drive/google/drive_api/child_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_CHILD_LIST_H_ #define GOOGLE_DRIVE_API_CHILD_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ChildList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class ChildList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class ChildList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/child_reference.cc b/service_apis/drive/google/drive_api/child_reference.cc index 570ecba..7e1cde4 100644 --- a/service_apis/drive/google/drive_api/child_reference.cc +++ b/service_apis/drive/google/drive_api/child_reference.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/child_reference.h b/service_apis/drive/google/drive_api/child_reference.h index b063337..bfbcfad 100644 --- a/service_apis/drive/google/drive_api/child_reference.h +++ b/service_apis/drive/google/drive_api/child_reference.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_CHILD_REFERENCE_H_ #define GOOGLE_DRIVE_API_CHILD_REFERENCE_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChildReference : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/comment.cc b/service_apis/drive/google/drive_api/comment.cc index 69671d9..62c3022 100644 --- a/service_apis/drive/google/drive_api/comment.cc +++ b/service_apis/drive/google/drive_api/comment.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/comment.h b/service_apis/drive/google/drive_api/comment.h index 374c9bb..a8e7243 100644 --- a/service_apis/drive/google/drive_api/comment.h +++ b/service_apis/drive/google/drive_api/comment.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_COMMENT_H_ #define GOOGLE_DRIVE_API_COMMENT_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class Comment : public client::JsonCppData { public: - /** * The context of the file which is being commented on. * @@ -61,7 +60,6 @@ class Comment : public client::JsonCppData { */ class CommentContext : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -269,10 +267,7 @@ class Comment : public client::JsonCppData { /** * Get a reference to the value of the 'author' attribute. */ - const User get_author() const { - const Json::Value& storage = Storage("author"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_author() const; /** * Gets a reference to a mutable value of the 'author' property. @@ -281,10 +276,7 @@ class Comment : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_author() { - Json::Value* storage = MutableStorage("author"); - return client::JsonValueToMutableCppValueHelper(storage); - } + User mutable_author(); /** * Determine if the 'commentId' attribute was set. @@ -680,10 +672,7 @@ class Comment : public client::JsonCppData { /** * Get a reference to the value of the 'replies' attribute. */ - const client::JsonCppArray get_replies() const { - const Json::Value& storage = Storage("replies"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_replies() const; /** * Gets a reference to a mutable value of the 'replies' property. @@ -692,10 +681,7 @@ class Comment : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_replies() { - Json::Value* storage = MutableStorage("replies"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_replies(); /** * Determine if the 'selfLink' attribute was set. diff --git a/service_apis/drive/google/drive_api/comment_list.cc b/service_apis/drive/google/drive_api/comment_list.cc index 53c66d3..dfad0cc 100644 --- a/service_apis/drive/google/drive_api/comment_list.cc +++ b/service_apis/drive/google/drive_api/comment_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/comment_list.h b/service_apis/drive/google/drive_api/comment_list.h index fec0587..0058cbe 100644 --- a/service_apis/drive/google/drive_api/comment_list.h +++ b/service_apis/drive/google/drive_api/comment_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_COMMENT_LIST_H_ #define GOOGLE_DRIVE_API_COMMENT_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class CommentList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -107,10 +106,7 @@ class CommentList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -119,10 +115,7 @@ class CommentList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/comment_reply.cc b/service_apis/drive/google/drive_api/comment_reply.cc index 794730a..7af58f6 100644 --- a/service_apis/drive/google/drive_api/comment_reply.cc +++ b/service_apis/drive/google/drive_api/comment_reply.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/comment_reply.h b/service_apis/drive/google/drive_api/comment_reply.h index ca1ecc7..28d7002 100644 --- a/service_apis/drive/google/drive_api/comment_reply.h +++ b/service_apis/drive/google/drive_api/comment_reply.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_COMMENT_REPLY_H_ #define GOOGLE_DRIVE_API_COMMENT_REPLY_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class CommentReply : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -108,10 +107,7 @@ class CommentReply : public client::JsonCppData { /** * Get a reference to the value of the 'author' attribute. */ - const User get_author() const { - const Json::Value& storage = Storage("author"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_author() const; /** * Gets a reference to a mutable value of the 'author' property. @@ -120,10 +116,7 @@ class CommentReply : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_author() { - Json::Value* storage = MutableStorage("author"); - return client::JsonValueToMutableCppValueHelper(storage); - } + User mutable_author(); /** * Determine if the 'content' attribute was set. diff --git a/service_apis/drive/google/drive_api/comment_reply_list.cc b/service_apis/drive/google/drive_api/comment_reply_list.cc index a190d90..073d9ab 100644 --- a/service_apis/drive/google/drive_api/comment_reply_list.cc +++ b/service_apis/drive/google/drive_api/comment_reply_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/comment_reply_list.h b/service_apis/drive/google/drive_api/comment_reply_list.h index 0e8a4d6..de175d4 100644 --- a/service_apis/drive/google/drive_api/comment_reply_list.h +++ b/service_apis/drive/google/drive_api/comment_reply_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_COMMENT_REPLY_LIST_H_ #define GOOGLE_DRIVE_API_COMMENT_REPLY_LIST_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class CommentReplyList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -108,10 +107,7 @@ class CommentReplyList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -120,10 +116,7 @@ class CommentReplyList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/drive_api.h b/service_apis/drive/google/drive_api/drive_api.h index 70c790d..987860d 100644 --- a/service_apis/drive/google/drive_api/drive_api.h +++ b/service_apis/drive/google/drive_api/drive_api.h @@ -11,10 +11,10 @@ // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 #ifndef GOOGLE_DRIVE_API_DRIVE_API_H_ #define GOOGLE_DRIVE_API_DRIVE_API_H_ diff --git a/service_apis/drive/google/drive_api/drive_service.cc b/service_apis/drive/google/drive_api/drive_service.cc index b99b83c..df3a3dd 100644 --- a/service_apis/drive/google/drive_api/drive_service.cc +++ b/service_apis/drive/google/drive_api/drive_service.cc @@ -13,17 +13,16 @@ // the License. // //------------------------------------------------------------------------------ -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. //------------------------------------------------------------------------------ #include "google/drive_api/drive_service.h" -#include #include #include "googleapis/base/integral_types.h" #include "googleapis/client/service/client_service.h" @@ -69,7 +68,7 @@ const StringPiece DriveService::googleapis_API_NAME("drive"); const StringPiece DriveService::googleapis_API_VERSION("v2"); const StringPiece DriveService::googleapis_API_GENERATOR( - "google-apis-code-generator 1.5.0 / 0.1.2"); + "google-apis-code-generator 1.5.1 / 0.1.3"); const StringPiece DriveService::SCOPES::DRIVE("https://www.googleapis.com/auth/drive"); @@ -80,6 +79,8 @@ const StringPiece DriveService::SCOPES::DRIVE_APPS_READONLY("https://www.googlea const StringPiece DriveService::SCOPES::DRIVE_FILE("https://www.googleapis.com/auth/drive.file"); +const StringPiece DriveService::SCOPES::DRIVE_METADATA("https://www.googleapis.com/auth/drive.metadata"); + const StringPiece DriveService::SCOPES::DRIVE_METADATA_READONLY("https://www.googleapis.com/auth/drive.metadata.readonly"); const StringPiece DriveService::SCOPES::DRIVE_READONLY("https://www.googleapis.com/auth/drive.readonly"); @@ -107,44 +108,9 @@ DriveServiceBaseRequest::~DriveServiceBaseRequest() { } util::Status DriveServiceBaseRequest::AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target) { - if (variable_name == "alt") { - target->append(client::CppValueToEscapedUrlValue( - alt_)); - return client::StatusOk(); - } - if (variable_name == "fields") { - target->append(client::CppValueToEscapedUrlValue( - fields_)); - return client::StatusOk(); - } - if (variable_name == "key") { - target->append(client::CppValueToEscapedUrlValue( - key_)); - return client::StatusOk(); - } - if (variable_name == "oauth_token") { - target->append(client::CppValueToEscapedUrlValue( - oauth_token_)); - return client::StatusOk(); - } - if (variable_name == "prettyPrint") { - target->append(client::CppValueToEscapedUrlValue( - pretty_print_)); - return client::StatusOk(); - } - if (variable_name == "quotaUser") { - target->append(client::CppValueToEscapedUrlValue( - quota_user_)); - return client::StatusOk(); - } - if (variable_name == "userIp") { - target->append(client::CppValueToEscapedUrlValue( - user_ip_)); - return client::StatusOk(); - } + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target) { return client::StatusInvalidArgument( StrCat("Unknown url variable='", variable_name, "'")); } @@ -171,7 +137,7 @@ util::Status DriveServiceBaseRequest::AppendOptionalQueryParameters( sep = "&"; } if (_have_oauth_token_) { - StrAppend(target, sep, "oauthToken=", + StrAppend(target, sep, "oauth_token=", client::CppValueToEscapedUrlValue( oauth_token_)); sep = "&"; @@ -199,6 +165,15 @@ util::Status DriveServiceBaseRequest::AppendOptionalQueryParameters( } +void DriveServiceBaseRequest::AddJsonContentToRequest( + const client::JsonCppData *content) { + client::HttpRequest* _http_request_ = mutable_http_request(); + _http_request_->set_content_type( + client::HttpRequest::ContentType_JSON); + _http_request_->set_content_reader(content->MakeJsonReader()); +} + + // Standard constructor. AboutResource_GetMethod::AboutResource_GetMethod( @@ -269,8 +244,8 @@ util::Status AppsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "appId") { - target->append(client::CppValueToEscapedUrlValue( - app_id_)); + client::UriTemplate::AppendValue( + app_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -345,8 +320,8 @@ util::Status ChangesResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "changeId") { - target->append(client::CppValueToEscapedUrlValue( - change_id_)); + client::UriTemplate::AppendValue( + change_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -365,10 +340,11 @@ ChangesResource_ListMethod::ChangesResource_ListMethod( include_deleted_(true), max_results_(100), _have_include_subscribed_(false), - _have_start_change_id_(false), _have_include_deleted_(false), _have_max_results_(false), - _have_page_token_(false) { + _have_page_token_(false), + _have_spaces_(false), + _have_start_change_id_(false) { } // Standard destructor. @@ -383,12 +359,6 @@ util::Status ChangesResource_ListMethod::AppendOptionalQueryParameters(string* t include_subscribed_)); sep = "&"; } - if (_have_start_change_id_) { - StrAppend(target, sep, "startChangeId=", - client::CppValueToEscapedUrlValue( - start_change_id_)); - sep = "&"; - } if (_have_include_deleted_) { StrAppend(target, sep, "includeDeleted=", client::CppValueToEscapedUrlValue( @@ -407,6 +377,18 @@ util::Status ChangesResource_ListMethod::AppendOptionalQueryParameters(string* t page_token_)); sep = "&"; } + if (_have_spaces_) { + StrAppend(target, sep, "spaces=", + client::CppValueToEscapedUrlValue( + spaces_)); + sep = "&"; + } + if (_have_start_change_id_) { + StrAppend(target, sep, "startChangeId=", + client::CppValueToEscapedUrlValue( + start_change_id_)); + sep = "&"; + } return DriveServiceBaseRequest::AppendOptionalQueryParameters(target); } util::Status ChangesResource_ListMethod::AppendVariable( @@ -429,14 +411,12 @@ ChangesResource_WatchMethod::ChangesResource_WatchMethod( include_deleted_(true), max_results_(100), _have_include_subscribed_(false), - _have_start_change_id_(false), _have_include_deleted_(false), _have_max_results_(false), - _have_page_token_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + _have_page_token_(false), + _have_spaces_(false), + _have_start_change_id_(false) { + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -451,12 +431,6 @@ util::Status ChangesResource_WatchMethod::AppendOptionalQueryParameters(string* include_subscribed_)); sep = "&"; } - if (_have_start_change_id_) { - StrAppend(target, sep, "startChangeId=", - client::CppValueToEscapedUrlValue( - start_change_id_)); - sep = "&"; - } if (_have_include_deleted_) { StrAppend(target, sep, "includeDeleted=", client::CppValueToEscapedUrlValue( @@ -475,6 +449,18 @@ util::Status ChangesResource_WatchMethod::AppendOptionalQueryParameters(string* page_token_)); sep = "&"; } + if (_have_spaces_) { + StrAppend(target, sep, "spaces=", + client::CppValueToEscapedUrlValue( + spaces_)); + sep = "&"; + } + if (_have_start_change_id_) { + StrAppend(target, sep, "startChangeId=", + client::CppValueToEscapedUrlValue( + start_change_id_)); + sep = "&"; + } return DriveServiceBaseRequest::AppendOptionalQueryParameters(target); } util::Status ChangesResource_WatchMethod::AppendVariable( @@ -493,10 +479,7 @@ ChannelsResource_StopMethod::ChannelsResource_StopMethod( _service_, _credential_, client::HttpRequest::POST, StrCat(_service_->service_url(), "channels/stop")) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -525,13 +508,13 @@ util::Status ChildrenResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "folderId") { - target->append(client::CppValueToEscapedUrlValue( - folder_id_)); + client::UriTemplate::AppendValue( + folder_id_, config, target); return client::StatusOk(); } if (variable_name == "childId") { - target->append(client::CppValueToEscapedUrlValue( - child_id_)); + client::UriTemplate::AppendValue( + child_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -560,13 +543,13 @@ util::Status ChildrenResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "folderId") { - target->append(client::CppValueToEscapedUrlValue( - folder_id_)); + client::UriTemplate::AppendValue( + folder_id_, config, target); return client::StatusOk(); } if (variable_name == "childId") { - target->append(client::CppValueToEscapedUrlValue( - child_id_)); + client::UriTemplate::AppendValue( + child_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -582,10 +565,7 @@ ChildrenResource_InsertMethod::ChildrenResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "files/{folderId}/children")), folder_id_(folder_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -598,8 +578,8 @@ util::Status ChildrenResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "folderId") { - target->append(client::CppValueToEscapedUrlValue( - folder_id_)); + client::UriTemplate::AppendValue( + folder_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -652,8 +632,8 @@ util::Status ChildrenResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "folderId") { - target->append(client::CppValueToEscapedUrlValue( - folder_id_)); + client::UriTemplate::AppendValue( + folder_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -682,13 +662,13 @@ util::Status CommentsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -728,13 +708,13 @@ util::Status CommentsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -750,10 +730,7 @@ CommentsResource_InsertMethod::CommentsResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "files/{fileId}/comments")), file_id_(file_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -766,8 +743,8 @@ util::Status CommentsResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -828,8 +805,8 @@ util::Status CommentsResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -846,10 +823,7 @@ CommentsResource_PatchMethod::CommentsResource_PatchMethod( StrCat(_service_->service_url(), "files/{fileId}/comments/{commentId}")), file_id_(file_id.as_string()), comment_id_(comment_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -862,13 +836,13 @@ util::Status CommentsResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -885,10 +859,7 @@ CommentsResource_UpdateMethod::CommentsResource_UpdateMethod( StrCat(_service_->service_url(), "files/{fileId}/comments/{commentId}")), file_id_(file_id.as_string()), comment_id_(comment_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -901,13 +872,13 @@ util::Status CommentsResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -934,10 +905,7 @@ FilesResource_CopyMethod::FilesResource_CopyMethod( _have_ocr_(false), _have_timed_text_track_name_(false), _have_timed_text_language_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -995,8 +963,8 @@ util::Status FilesResource_CopyMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1024,8 +992,8 @@ util::Status FilesResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1057,10 +1025,10 @@ FilesResource_GetMethod::FilesResource_GetMethod( file_id_(file_id.as_string()), acknowledge_abuse_(false), update_viewed_date_(false), - _have_projection_(false), - _have_revision_id_(false), _have_acknowledge_abuse_(false), - _have_update_viewed_date_(false) { + _have_update_viewed_date_(false), + _have_revision_id_(false), + _have_projection_(false) { } // Standard destructor. @@ -1069,18 +1037,6 @@ FilesResource_GetMethod::~FilesResource_GetMethod() { util::Status FilesResource_GetMethod::AppendOptionalQueryParameters(string* target) { const char* sep = (target->find('?') == string::npos) ? "?" : "&"; - if (_have_projection_) { - StrAppend(target, sep, "projection=", - client::CppValueToEscapedUrlValue( - projection_)); - sep = "&"; - } - if (_have_revision_id_) { - StrAppend(target, sep, "revisionId=", - client::CppValueToEscapedUrlValue( - revision_id_)); - sep = "&"; - } if (_have_acknowledge_abuse_) { StrAppend(target, sep, "acknowledgeAbuse=", client::CppValueToEscapedUrlValue( @@ -1093,6 +1049,18 @@ util::Status FilesResource_GetMethod::AppendOptionalQueryParameters(string* targ update_viewed_date_)); sep = "&"; } + if (_have_revision_id_) { + StrAppend(target, sep, "revisionId=", + client::CppValueToEscapedUrlValue( + revision_id_)); + sep = "&"; + } + if (_have_projection_) { + StrAppend(target, sep, "projection=", + client::CppValueToEscapedUrlValue( + projection_)); + sep = "&"; + } return DriveServiceBaseRequest::AppendOptionalQueryParameters(target); } util::Status FilesResource_GetMethod::AppendVariable( @@ -1100,8 +1068,8 @@ util::Status FilesResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1121,18 +1089,6 @@ FilesResource_InsertMethod::RESUMABLE_MEDIA_UPLOAD( "resumable", "/resumable/upload/drive/v2/files", true); -util::Status FilesResource_InsertMethod::Execute() { - client::HttpRequest* request = mutable_http_request(); - util::Status status = - _uploader_->BuildRequest( - request, - NewCallback(this, &FilesResource_InsertMethod::PrepareUrl)); - if (!status.ok()) { - return status; - } - - return _uploader_->Upload(request); -} // Deprecated constructor did not take media upload arguments. FilesResource_InsertMethod::FilesResource_InsertMethod( @@ -1154,7 +1110,7 @@ FilesResource_InsertMethod::FilesResource_InsertMethod( _have_ocr_(false), _have_timed_text_track_name_(false), _have_timed_text_language_(false) { - _uploader_.reset(new client::MediaUploader( + uploader_.reset(new client::MediaUploader( &SIMPLE_MEDIA_UPLOAD, _service_->url_root(), client::JoinPath( @@ -1180,17 +1136,21 @@ FilesResource_InsertMethod::FilesResource_InsertMethod( _have_ocr_(false), _have_timed_text_track_name_(false), _have_timed_text_language_(false) { - _uploader_.reset(new client::MediaUploader( - &SIMPLE_MEDIA_UPLOAD, - _service_->url_root(), - client::JoinPath( - _service_->url_path(), "files"))); - if (_metadata_) { - _uploader_->set_metadata(*_metadata_); - } if (_media_content_reader_) { - _uploader_->set_media_content_reader( + client::MediaUploader* uploader = + new client::MediaUploader( + &SIMPLE_MEDIA_UPLOAD, + _service_->url_root(), + client::JoinPath( + _service_->url_path(), "files")); + if (_metadata_) { + uploader->set_metadata(*_metadata_); + } + uploader->set_media_content_reader( _media_content_type_.as_string(), _media_content_reader_); + ResetMediaUploader(uploader); + } else { + AddJsonContentToRequest(_metadata_); } } @@ -1267,11 +1227,12 @@ FilesResource_ListMethod::FilesResource_ListMethod( client::HttpRequest::GET, StrCat(_service_->service_url(), "files")), max_results_(100), + _have_projection_(false), + _have_max_results_(false), _have_q_(false), _have_page_token_(false), - _have_corpus_(false), - _have_projection_(false), - _have_max_results_(false) { + _have_spaces_(false), + _have_corpus_(false) { } // Standard destructor. @@ -1280,6 +1241,18 @@ FilesResource_ListMethod::~FilesResource_ListMethod() { util::Status FilesResource_ListMethod::AppendOptionalQueryParameters(string* target) { const char* sep = (target->find('?') == string::npos) ? "?" : "&"; + if (_have_projection_) { + StrAppend(target, sep, "projection=", + client::CppValueToEscapedUrlValue( + projection_)); + sep = "&"; + } + if (_have_max_results_) { + StrAppend(target, sep, "maxResults=", + client::CppValueToEscapedUrlValue( + max_results_)); + sep = "&"; + } if (_have_q_) { StrAppend(target, sep, "q=", client::CppValueToEscapedUrlValue( @@ -1292,22 +1265,16 @@ util::Status FilesResource_ListMethod::AppendOptionalQueryParameters(string* tar page_token_)); sep = "&"; } - if (_have_corpus_) { - StrAppend(target, sep, "corpus=", - client::CppValueToEscapedUrlValue( - corpus_)); - sep = "&"; - } - if (_have_projection_) { - StrAppend(target, sep, "projection=", + if (_have_spaces_) { + StrAppend(target, sep, "spaces=", client::CppValueToEscapedUrlValue( - projection_)); + spaces_)); sep = "&"; } - if (_have_max_results_) { - StrAppend(target, sep, "maxResults=", + if (_have_corpus_) { + StrAppend(target, sep, "corpus=", client::CppValueToEscapedUrlValue( - max_results_)); + corpus_)); sep = "&"; } return DriveServiceBaseRequest::AppendOptionalQueryParameters(target); @@ -1348,10 +1315,7 @@ FilesResource_PatchMethod::FilesResource_PatchMethod( _have_ocr_(false), _have_timed_text_language_(false), _have_timed_text_track_name_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1439,8 +1403,8 @@ util::Status FilesResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1468,8 +1432,8 @@ util::Status FilesResource_TouchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1497,8 +1461,8 @@ util::Status FilesResource_TrashMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1526,8 +1490,8 @@ util::Status FilesResource_UntrashMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1547,18 +1511,6 @@ FilesResource_UpdateMethod::RESUMABLE_MEDIA_UPLOAD( "resumable", "/resumable/upload/drive/v2/files/{fileId}", true); -util::Status FilesResource_UpdateMethod::Execute() { - client::HttpRequest* request = mutable_http_request(); - util::Status status = - _uploader_->BuildRequest( - request, - NewCallback(this, &FilesResource_UpdateMethod::PrepareUrl)); - if (!status.ok()) { - return status; - } - - return _uploader_->Upload(request); -} // Deprecated constructor did not take media upload arguments. FilesResource_UpdateMethod::FilesResource_UpdateMethod( @@ -1587,7 +1539,7 @@ FilesResource_UpdateMethod::FilesResource_UpdateMethod( _have_ocr_(false), _have_timed_text_language_(false), _have_timed_text_track_name_(false) { - _uploader_.reset(new client::MediaUploader( + uploader_.reset(new client::MediaUploader( &SIMPLE_MEDIA_UPLOAD, _service_->url_root(), client::JoinPath( @@ -1620,17 +1572,21 @@ FilesResource_UpdateMethod::FilesResource_UpdateMethod( _have_ocr_(false), _have_timed_text_language_(false), _have_timed_text_track_name_(false) { - _uploader_.reset(new client::MediaUploader( - &SIMPLE_MEDIA_UPLOAD, - _service_->url_root(), - client::JoinPath( - _service_->url_path(), "files/{fileId}"))); - if (_metadata_) { - _uploader_->set_metadata(*_metadata_); - } if (_media_content_reader_) { - _uploader_->set_media_content_reader( + client::MediaUploader* uploader = + new client::MediaUploader( + &SIMPLE_MEDIA_UPLOAD, + _service_->url_root(), + client::JoinPath( + _service_->url_path(), "files/{fileId}")); + if (_metadata_) { + uploader->set_metadata(*_metadata_); + } + uploader->set_media_content_reader( _media_content_type_.as_string(), _media_content_reader_); + ResetMediaUploader(uploader); + } else { + AddJsonContentToRequest(_metadata_); } } @@ -1719,8 +1675,8 @@ util::Status FilesResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1738,14 +1694,11 @@ FilesResource_WatchMethod::FilesResource_WatchMethod( file_id_(file_id.as_string()), acknowledge_abuse_(false), update_viewed_date_(false), - _have_projection_(false), - _have_revision_id_(false), _have_acknowledge_abuse_(false), - _have_update_viewed_date_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + _have_update_viewed_date_(false), + _have_revision_id_(false), + _have_projection_(false) { + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1754,18 +1707,6 @@ FilesResource_WatchMethod::~FilesResource_WatchMethod() { util::Status FilesResource_WatchMethod::AppendOptionalQueryParameters(string* target) { const char* sep = (target->find('?') == string::npos) ? "?" : "&"; - if (_have_projection_) { - StrAppend(target, sep, "projection=", - client::CppValueToEscapedUrlValue( - projection_)); - sep = "&"; - } - if (_have_revision_id_) { - StrAppend(target, sep, "revisionId=", - client::CppValueToEscapedUrlValue( - revision_id_)); - sep = "&"; - } if (_have_acknowledge_abuse_) { StrAppend(target, sep, "acknowledgeAbuse=", client::CppValueToEscapedUrlValue( @@ -1778,6 +1719,18 @@ util::Status FilesResource_WatchMethod::AppendOptionalQueryParameters(string* ta update_viewed_date_)); sep = "&"; } + if (_have_revision_id_) { + StrAppend(target, sep, "revisionId=", + client::CppValueToEscapedUrlValue( + revision_id_)); + sep = "&"; + } + if (_have_projection_) { + StrAppend(target, sep, "projection=", + client::CppValueToEscapedUrlValue( + projection_)); + sep = "&"; + } return DriveServiceBaseRequest::AppendOptionalQueryParameters(target); } util::Status FilesResource_WatchMethod::AppendVariable( @@ -1785,8 +1738,8 @@ util::Status FilesResource_WatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1815,13 +1768,13 @@ util::Status ParentsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "parentId") { - target->append(client::CppValueToEscapedUrlValue( - parent_id_)); + client::UriTemplate::AppendValue( + parent_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1850,13 +1803,13 @@ util::Status ParentsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "parentId") { - target->append(client::CppValueToEscapedUrlValue( - parent_id_)); + client::UriTemplate::AppendValue( + parent_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1872,10 +1825,7 @@ ParentsResource_InsertMethod::ParentsResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "files/{fileId}/parents")), file_id_(file_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -1888,8 +1838,8 @@ util::Status ParentsResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1917,8 +1867,8 @@ util::Status ParentsResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1947,13 +1897,13 @@ util::Status PermissionsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "permissionId") { - target->append(client::CppValueToEscapedUrlValue( - permission_id_)); + client::UriTemplate::AppendValue( + permission_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -1982,13 +1932,13 @@ util::Status PermissionsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "permissionId") { - target->append(client::CppValueToEscapedUrlValue( - permission_id_)); + client::UriTemplate::AppendValue( + permission_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2016,8 +1966,8 @@ util::Status PermissionsResource_GetIdForEmailMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "email") { - target->append(client::CppValueToEscapedUrlValue( - email_)); + client::UriTemplate::AppendValue( + email_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2036,10 +1986,7 @@ PermissionsResource_InsertMethod::PermissionsResource_InsertMethod( send_notification_emails_(true), _have_email_message_(false), _have_send_notification_emails_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2067,8 +2014,8 @@ util::Status PermissionsResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2096,8 +2043,8 @@ util::Status PermissionsResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2116,10 +2063,7 @@ PermissionsResource_PatchMethod::PermissionsResource_PatchMethod( permission_id_(permission_id.as_string()), transfer_ownership_(false), _have_transfer_ownership_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2141,13 +2085,13 @@ util::Status PermissionsResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "permissionId") { - target->append(client::CppValueToEscapedUrlValue( - permission_id_)); + client::UriTemplate::AppendValue( + permission_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2166,10 +2110,7 @@ PermissionsResource_UpdateMethod::PermissionsResource_UpdateMethod( permission_id_(permission_id.as_string()), transfer_ownership_(false), _have_transfer_ownership_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2191,13 +2132,13 @@ util::Status PermissionsResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "permissionId") { - target->append(client::CppValueToEscapedUrlValue( - permission_id_)); + client::UriTemplate::AppendValue( + permission_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2237,13 +2178,13 @@ util::Status PropertiesResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "propertyKey") { - target->append(client::CppValueToEscapedUrlValue( - property_key_)); + client::UriTemplate::AppendValue( + property_key_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2283,13 +2224,13 @@ util::Status PropertiesResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "propertyKey") { - target->append(client::CppValueToEscapedUrlValue( - property_key_)); + client::UriTemplate::AppendValue( + property_key_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2305,10 +2246,7 @@ PropertiesResource_InsertMethod::PropertiesResource_InsertMethod( client::HttpRequest::POST, StrCat(_service_->service_url(), "files/{fileId}/properties")), file_id_(file_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2321,8 +2259,8 @@ util::Status PropertiesResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2350,8 +2288,8 @@ util::Status PropertiesResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2370,10 +2308,7 @@ PropertiesResource_PatchMethod::PropertiesResource_PatchMethod( property_key_(property_key.as_string()), visibility_("private"), _have_visibility_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2395,13 +2330,13 @@ util::Status PropertiesResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "propertyKey") { - target->append(client::CppValueToEscapedUrlValue( - property_key_)); + client::UriTemplate::AppendValue( + property_key_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2420,10 +2355,7 @@ PropertiesResource_UpdateMethod::PropertiesResource_UpdateMethod( property_key_(property_key.as_string()), visibility_("private"), _have_visibility_(false) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2445,13 +2377,13 @@ util::Status PropertiesResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "propertyKey") { - target->append(client::CppValueToEscapedUrlValue( - property_key_)); + client::UriTemplate::AppendValue( + property_key_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2489,8 +2421,8 @@ util::Status RealtimeResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2510,18 +2442,6 @@ RealtimeResource_UpdateMethod::RESUMABLE_MEDIA_UPLOAD( "resumable", "/resumable/upload/drive/v2/files/{fileId}/realtime", true); -util::Status RealtimeResource_UpdateMethod::Execute() { - client::HttpRequest* request = mutable_http_request(); - util::Status status = - _uploader_->BuildRequest( - request, - NewCallback(this, &RealtimeResource_UpdateMethod::PrepareUrl)); - if (!status.ok()) { - return status; - } - - return _uploader_->Upload(request); -} // Standard constructor. RealtimeResource_UpdateMethod::RealtimeResource_UpdateMethod( @@ -2532,14 +2452,16 @@ RealtimeResource_UpdateMethod::RealtimeResource_UpdateMethod( StrCat(_service_->service_url(), "files/{fileId}/realtime")), file_id_(file_id.as_string()), _have_base_revision_(false) { - _uploader_.reset(new client::MediaUploader( - &SIMPLE_MEDIA_UPLOAD, - _service_->url_root(), - client::JoinPath( - _service_->url_path(), "files/{fileId}/realtime"))); if (_media_content_reader_) { - _uploader_->set_media_content_reader( + client::MediaUploader* uploader = + new client::MediaUploader( + &SIMPLE_MEDIA_UPLOAD, + _service_->url_root(), + client::JoinPath( + _service_->url_path(), "files/{fileId}/realtime")); + uploader->set_media_content_reader( _media_content_type_.as_string(), _media_content_reader_); + ResetMediaUploader(uploader); } } @@ -2562,8 +2484,8 @@ util::Status RealtimeResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2593,18 +2515,18 @@ util::Status RepliesResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } if (variable_name == "replyId") { - target->append(client::CppValueToEscapedUrlValue( - reply_id_)); + client::UriTemplate::AppendValue( + reply_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2645,18 +2567,18 @@ util::Status RepliesResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } if (variable_name == "replyId") { - target->append(client::CppValueToEscapedUrlValue( - reply_id_)); + client::UriTemplate::AppendValue( + reply_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2673,10 +2595,7 @@ RepliesResource_InsertMethod::RepliesResource_InsertMethod( StrCat(_service_->service_url(), "files/{fileId}/comments/{commentId}/replies")), file_id_(file_id.as_string()), comment_id_(comment_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2689,13 +2608,13 @@ util::Status RepliesResource_InsertMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2750,13 +2669,13 @@ util::Status RepliesResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2774,10 +2693,7 @@ RepliesResource_PatchMethod::RepliesResource_PatchMethod( file_id_(file_id.as_string()), comment_id_(comment_id.as_string()), reply_id_(reply_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2790,18 +2706,18 @@ util::Status RepliesResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } if (variable_name == "replyId") { - target->append(client::CppValueToEscapedUrlValue( - reply_id_)); + client::UriTemplate::AppendValue( + reply_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2819,10 +2735,7 @@ RepliesResource_UpdateMethod::RepliesResource_UpdateMethod( file_id_(file_id.as_string()), comment_id_(comment_id.as_string()), reply_id_(reply_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2835,18 +2748,18 @@ util::Status RepliesResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "commentId") { - target->append(client::CppValueToEscapedUrlValue( - comment_id_)); + client::UriTemplate::AppendValue( + comment_id_, config, target); return client::StatusOk(); } if (variable_name == "replyId") { - target->append(client::CppValueToEscapedUrlValue( - reply_id_)); + client::UriTemplate::AppendValue( + reply_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2875,13 +2788,13 @@ util::Status RevisionsResource_DeleteMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "revisionId") { - target->append(client::CppValueToEscapedUrlValue( - revision_id_)); + client::UriTemplate::AppendValue( + revision_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2910,13 +2823,13 @@ util::Status RevisionsResource_GetMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "revisionId") { - target->append(client::CppValueToEscapedUrlValue( - revision_id_)); + client::UriTemplate::AppendValue( + revision_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2944,8 +2857,8 @@ util::Status RevisionsResource_ListMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -2962,10 +2875,7 @@ RevisionsResource_PatchMethod::RevisionsResource_PatchMethod( StrCat(_service_->service_url(), "files/{fileId}/revisions/{revisionId}")), file_id_(file_id.as_string()), revision_id_(revision_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -2978,13 +2888,13 @@ util::Status RevisionsResource_PatchMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "revisionId") { - target->append(client::CppValueToEscapedUrlValue( - revision_id_)); + client::UriTemplate::AppendValue( + revision_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( @@ -3001,10 +2911,7 @@ RevisionsResource_UpdateMethod::RevisionsResource_UpdateMethod( StrCat(_service_->service_url(), "files/{fileId}/revisions/{revisionId}")), file_id_(file_id.as_string()), revision_id_(revision_id.as_string()) { - client::HttpRequest* _http_request_ = mutable_http_request(); - _http_request_->set_content_type( - client::HttpRequest::ContentType_JSON); - _http_request_->set_content_reader(__request_content__.MakeJsonReader()); + AddJsonContentToRequest(&__request_content__); } // Standard destructor. @@ -3017,13 +2924,13 @@ util::Status RevisionsResource_UpdateMethod::AppendVariable( const client::UriTemplateConfig& config, string* target) { if (variable_name == "fileId") { - target->append(client::CppValueToEscapedUrlValue( - file_id_)); + client::UriTemplate::AppendValue( + file_id_, config, target); return client::StatusOk(); } if (variable_name == "revisionId") { - target->append(client::CppValueToEscapedUrlValue( - revision_id_)); + client::UriTemplate::AppendValue( + revision_id_, config, target); return client::StatusOk(); } return DriveServiceBaseRequest::AppendVariable( diff --git a/service_apis/drive/google/drive_api/drive_service.h b/service_apis/drive/google/drive_api/drive_service.h index d159fe2..fdddd6f 100644 --- a/service_apis/drive/google/drive_api/drive_service.h +++ b/service_apis/drive/google/drive_api/drive_service.h @@ -13,10 +13,10 @@ // the License. // //------------------------------------------------------------------------------ -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -24,7 +24,6 @@ #ifndef GOOGLE_DRIVE_API_DRIVE_SERVICE_H_ #define GOOGLE_DRIVE_API_DRIVE_SERVICE_H_ -#include #include #include "googleapis/base/integral_types.h" #include "googleapis/base/macros.h" @@ -70,16 +69,16 @@ using namespace googleapis; * API * Drive API * API Versionv2 - * API Rev163 + * API Rev172 * API Docs * * https://developers.google.com/drive/ * Discovery Namedrive - * Generated At2015-03-24 16:34:37 UTC + * Generated At2015-06-04 16:55:58 UTC * C++ Generatorgoogle-apis-code-generator * Generator Version - * 1.5.0 / c++=0.1.2 - * Generator Build2015-01-14 17:53:03 UTC + * 1.5.1 / c++=0.1.3 + * Generator Build2015-03-26 20:30:19 UTC * * * \section ForMoreInfo For More Information @@ -263,13 +262,7 @@ class DriveServiceBaseRequest _have_oauth_token_ = false; client::ClearCppValueHelper(&oauth_token_); } - /** - * @deprecated - * @see clear_oauth_token - */ - void clear_oauthToken() { - clear_oauth_token(); - } + /** * Gets the optional 'oauth_token' attribute. @@ -309,13 +302,7 @@ class DriveServiceBaseRequest _have_pretty_print_ = false; client::ClearCppValueHelper(&pretty_print_); } - /** - * @deprecated - * @see clear_pretty_print - */ - void clear_prettyPrint() { - clear_pretty_print(); - } + /** * Gets the optional 'prettyPrint' attribute. @@ -341,13 +328,7 @@ class DriveServiceBaseRequest _have_quota_user_ = false; client::ClearCppValueHelper("a_user_); } - /** - * @deprecated - * @see clear_quota_user - */ - void clear_quotaUser() { - clear_quota_user(); - } + /** * Gets the optional 'quotaUser' attribute. @@ -389,13 +370,7 @@ class DriveServiceBaseRequest _have_user_ip_ = false; client::ClearCppValueHelper(&user_ip_); } - /** - * @deprecated - * @see clear_user_ip - */ - void clear_userIp() { - clear_user_ip(); - } + /** * Gets the optional 'userIp' attribute. @@ -448,6 +423,15 @@ class DriveServiceBaseRequest */ virtual util::Status AppendOptionalQueryParameters(string* target); + + protected: + /** + * Prepares the method's HTTP request to send body content as JSON. + * + * Only to be used for method constructors. + */ + void AddJsonContentToRequest(const client::JsonCppData *content); + private: string alt_; string fields_; @@ -482,13 +466,12 @@ class DriveServiceBaseRequest * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class AboutResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -497,8 +480,8 @@ class AboutResource_GetMethod : public DriveServiceBaseRequest { * creating the method instance. */ AboutResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -514,13 +497,7 @@ class AboutResource_GetMethod : public DriveServiceBaseRequest { _have_include_subscribed_ = false; client::ClearCppValueHelper(&include_subscribed_); } - /** - * @deprecated - * @see clear_include_subscribed - */ - void clear_includeSubscribed() { - clear_include_subscribed(); - } + /** * Gets the optional 'includeSubscribed' attribute. @@ -551,13 +528,7 @@ class AboutResource_GetMethod : public DriveServiceBaseRequest { _have_max_change_id_count_ = false; client::ClearCppValueHelper(&max_change_id_count_); } - /** - * @deprecated - * @see clear_max_change_id_count - */ - void clear_maxChangeIdCount() { - clear_max_change_id_count(); - } + /** * Gets the optional 'maxChangeIdCount' attribute. @@ -583,13 +554,7 @@ class AboutResource_GetMethod : public DriveServiceBaseRequest { _have_start_change_id_ = false; client::ClearCppValueHelper(&start_change_id_); } - /** - * @deprecated - * @see clear_start_change_id - */ - void clear_startChangeId() { - clear_start_change_id(); - } + /** * Gets the optional 'startChangeId' attribute. @@ -672,13 +637,12 @@ class AboutResource_GetMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class AppsResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -686,12 +650,11 @@ class AppsResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] app_id The ID of the app. - * */ AppsResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& app_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& app_id); /** * Standard destructor. @@ -748,8 +711,6 @@ class AppsResource_GetMethod : public DriveServiceBaseRequest { */ class AppsResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -758,8 +719,8 @@ class AppsResource_ListMethod : public DriveServiceBaseRequest { * creating the method instance. */ AppsResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -774,13 +735,7 @@ class AppsResource_ListMethod : public DriveServiceBaseRequest { _have_language_code_ = false; client::ClearCppValueHelper(&language_code_); } - /** - * @deprecated - * @see clear_language_code - */ - void clear_languageCode() { - clear_language_code(); - } + /** * Gets the optional 'languageCode' attribute. @@ -823,13 +778,7 @@ class AppsResource_ListMethod : public DriveServiceBaseRequest { _have_app_filter_extensions_ = false; client::ClearCppValueHelper(&app_filter_extensions_); } - /** - * @deprecated - * @see clear_app_filter_extensions - */ - void clear_appFilterExtensions() { - clear_app_filter_extensions(); - } + /** * Gets the optional 'appFilterExtensions' attribute. @@ -874,13 +823,7 @@ class AppsResource_ListMethod : public DriveServiceBaseRequest { _have_app_filter_mime_types_ = false; client::ClearCppValueHelper(&app_filter_mime_types_); } - /** - * @deprecated - * @see clear_app_filter_mime_types - */ - void clear_appFilterMimeTypes() { - clear_app_filter_mime_types(); - } + /** * Gets the optional 'appFilterMimeTypes' attribute. @@ -978,13 +921,12 @@ class AppsResource_ListMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChangesResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -992,12 +934,11 @@ class ChangesResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] change_id The ID of the change. - * */ ChangesResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& change_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& change_id); /** * Standard destructor. @@ -1054,13 +995,12 @@ class ChangesResource_GetMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChangesResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1069,8 +1009,8 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { * creating the method instance. */ ChangesResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -1086,13 +1026,7 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { _have_include_subscribed_ = false; client::ClearCppValueHelper(&include_subscribed_); } - /** - * @deprecated - * @see clear_include_subscribed - */ - void clear_includeSubscribed() { - clear_include_subscribed(); - } + /** * Gets the optional 'includeSubscribed' attribute. @@ -1114,38 +1048,6 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { include_subscribed_ = value; } - /** - * Clears the 'startChangeId' attribute so it is no longer set. - */ - void clear_start_change_id() { - _have_start_change_id_ = false; - client::ClearCppValueHelper(&start_change_id_); - } - /** - * @deprecated - * @see clear_start_change_id - */ - void clear_startChangeId() { - clear_start_change_id(); - } - - /** - * Gets the optional 'startChangeId' attribute. - * - * If the value is not set then the default value will be returned. - */ - int64 get_start_change_id() const { return start_change_id_; } - - /** - * Sets the 'startChangeId' attribute. - * - * @param[in] value Change ID to start listing changes from. - */ - void set_start_change_id(int64 value) { - _have_start_change_id_ = true; - start_change_id_ = value; - } - /** * Clears the 'includeDeleted' attribute so it is no longer * set. @@ -1154,13 +1056,7 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -1186,13 +1082,7 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -1218,13 +1108,7 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -1255,6 +1139,74 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { page_token_ = value; } + + + /** + * Clears the 'spaces' attribute so it is no longer set. + */ + void clear_spaces() { + _have_spaces_ = false; + client::ClearCppValueHelper(&spaces_); + } + + + /** + * Gets the optional 'spaces' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_spaces() const { return spaces_; } + + /** + * Gets a modifiable pointer to the optional spaces' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_spaces() { + _have_spaces_ = true; + return &spaces_; + } + + + /** + * Sets the 'spaces' attribute. + * + * @param[in] value A comma-separated list of spaces to query. Supported + * values are 'drive' and 'appDataFolder'. + */ + void set_spaces(const string& value) { + _have_spaces_ = true; + spaces_ = value; + } + + + + /** + * Clears the 'startChangeId' attribute so it is no longer set. + */ + void clear_start_change_id() { + _have_start_change_id_ = false; + client::ClearCppValueHelper(&start_change_id_); + } + + + /** + * Gets the optional 'startChangeId' attribute. + * + * If the value is not set then the default value will be returned. + */ + int64 get_start_change_id() const { return start_change_id_; } + + /** + * Sets the 'startChangeId' attribute. + * + * @param[in] value Change ID to start listing changes from. + */ + void set_start_change_id(int64 value) { + _have_start_change_id_ = true; + start_change_id_ = value; + } + /** * Appends variable value to the target string. * @@ -1294,15 +1246,17 @@ class ChangesResource_ListMethod : public DriveServiceBaseRequest { private: bool include_subscribed_; - int64 start_change_id_; bool include_deleted_; int32 max_results_; string page_token_; + string spaces_; + int64 start_change_id_; bool _have_include_subscribed_ : 1; - bool _have_start_change_id_ : 1; bool _have_include_deleted_ : 1; bool _have_max_results_ : 1; bool _have_page_token_ : 1; + bool _have_spaces_ : 1; + bool _have_start_change_id_ : 1; DISALLOW_COPY_AND_ASSIGN(ChangesResource_ListMethod); }; @@ -1325,13 +1279,12 @@ typedef client::ServiceRequestPager< * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1339,13 +1292,11 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to watch. - * */ ChangesResource_WatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const Channel& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const Channel& _content_); /** * Standard destructor. @@ -1361,13 +1312,7 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { _have_include_subscribed_ = false; client::ClearCppValueHelper(&include_subscribed_); } - /** - * @deprecated - * @see clear_include_subscribed - */ - void clear_includeSubscribed() { - clear_include_subscribed(); - } + /** * Gets the optional 'includeSubscribed' attribute. @@ -1389,38 +1334,6 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { include_subscribed_ = value; } - /** - * Clears the 'startChangeId' attribute so it is no longer set. - */ - void clear_start_change_id() { - _have_start_change_id_ = false; - client::ClearCppValueHelper(&start_change_id_); - } - /** - * @deprecated - * @see clear_start_change_id - */ - void clear_startChangeId() { - clear_start_change_id(); - } - - /** - * Gets the optional 'startChangeId' attribute. - * - * If the value is not set then the default value will be returned. - */ - int64 get_start_change_id() const { return start_change_id_; } - - /** - * Sets the 'startChangeId' attribute. - * - * @param[in] value Change ID to start listing changes from. - */ - void set_start_change_id(int64 value) { - _have_start_change_id_ = true; - start_change_id_ = value; - } - /** * Clears the 'includeDeleted' attribute so it is no longer * set. @@ -1429,13 +1342,7 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -1461,13 +1368,7 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -1493,13 +1394,7 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -1530,30 +1425,98 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { page_token_ = value; } - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); + /** + * Clears the 'spaces' attribute so it is no longer set. + */ + void clear_spaces() { + _have_spaces_ = false; + client::ClearCppValueHelper(&spaces_); + } - /** - * Executes the method and parses the response into a data object on success. + + /** + * Gets the optional 'spaces' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_spaces() const { return spaces_; } + + /** + * Gets a modifiable pointer to the optional spaces' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_spaces() { + _have_spaces_ = true; + return &spaces_; + } + + + /** + * Sets the 'spaces' attribute. + * + * @param[in] value A comma-separated list of spaces to query. Supported + * values are 'drive' and 'appDataFolder'. + */ + void set_spaces(const string& value) { + _have_spaces_ = true; + spaces_ = value; + } + + + + /** + * Clears the 'startChangeId' attribute so it is no longer set. + */ + void clear_start_change_id() { + _have_start_change_id_ = false; + client::ClearCppValueHelper(&start_change_id_); + } + + + /** + * Gets the optional 'startChangeId' attribute. + * + * If the value is not set then the default value will be returned. + */ + int64 get_start_change_id() const { return start_change_id_; } + + /** + * Sets the 'startChangeId' attribute. + * + * @param[in] value Change ID to start listing changes from. + */ + void set_start_change_id(int64 value) { + _have_start_change_id_ = true; + start_change_id_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. * * @param[out] data Loads from the response payload JSON data on success. * @@ -1569,15 +1532,17 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { private: bool include_subscribed_; - int64 start_change_id_; bool include_deleted_; int32 max_results_; string page_token_; + string spaces_; + int64 start_change_id_; bool _have_include_subscribed_ : 1; - bool _have_start_change_id_ : 1; bool _have_include_deleted_ : 1; bool _have_max_results_ : 1; - bool _have_page_token_ : 1; string _content_; + bool _have_page_token_ : 1; + bool _have_spaces_ : 1; + bool _have_start_change_id_ : 1; string _content_; DISALLOW_COPY_AND_ASSIGN(ChangesResource_WatchMethod); }; @@ -1597,13 +1562,12 @@ class ChangesResource_WatchMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChannelsResource_StopMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1611,13 +1575,11 @@ class ChannelsResource_StopMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] _content_ The data object to stop. - * */ ChannelsResource_StopMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const Channel& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const Channel& _content_); /** * Standard destructor. @@ -1646,8 +1608,6 @@ class ChannelsResource_StopMethod : public DriveServiceBaseRequest { */ class ChildrenResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1655,15 +1615,13 @@ class ChildrenResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] folder_id The ID of the folder. - * * @param[in] child_id The ID of the child. - * */ ChildrenResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const StringPiece& child_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const StringPiece& child_id); /** * Standard destructor. @@ -1705,13 +1663,12 @@ class ChildrenResource_DeleteMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChildrenResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1719,15 +1676,13 @@ class ChildrenResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] folder_id The ID of the folder. - * * @param[in] child_id The ID of the child. - * */ ChildrenResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const StringPiece& child_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const StringPiece& child_id); /** * Standard destructor. @@ -1787,8 +1742,6 @@ class ChildrenResource_GetMethod : public DriveServiceBaseRequest { */ class ChildrenResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1796,16 +1749,13 @@ class ChildrenResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] folder_id The ID of the folder. - * * @param[in] _content_ The data object to insert. - * */ ChildrenResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const ChildReference& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const ChildReference& _content_); /** * Standard destructor. @@ -1861,13 +1811,12 @@ class ChildrenResource_InsertMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ChildrenResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -1875,12 +1824,11 @@ class ChildrenResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] folder_id The ID of the folder. - * */ ChildrenResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id); /** * Standard destructor. @@ -1934,13 +1882,7 @@ class ChildrenResource_ListMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -1980,13 +1922,7 @@ class ChildrenResource_ListMethod : public DriveServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -2072,12 +2008,9 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.file - * https://www.googleapis.com/auth/drive.readonly */ class CommentsResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2085,15 +2018,13 @@ class CommentsResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * */ CommentsResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id); /** * Standard destructor. @@ -2138,8 +2069,6 @@ class CommentsResource_DeleteMethod : public DriveServiceBaseRequest { */ class CommentsResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2147,15 +2076,13 @@ class CommentsResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * */ CommentsResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id); /** * Standard destructor. @@ -2171,13 +2098,7 @@ class CommentsResource_GetMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -2257,8 +2178,6 @@ class CommentsResource_GetMethod : public DriveServiceBaseRequest { */ class CommentsResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2266,16 +2185,13 @@ class CommentsResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] _content_ The data object to insert. - * */ CommentsResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Comment& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Comment& _content_); /** * Standard destructor. @@ -2334,8 +2250,6 @@ class CommentsResource_InsertMethod : public DriveServiceBaseRequest { */ class CommentsResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2343,12 +2257,11 @@ class CommentsResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * */ CommentsResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -2363,13 +2276,7 @@ class CommentsResource_ListMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -2411,13 +2318,7 @@ class CommentsResource_ListMethod : public DriveServiceBaseRequest { _have_updated_min_ = false; client::ClearCppValueHelper(&updated_min_); } - /** - * @deprecated - * @see clear_updated_min - */ - void clear_updatedMin() { - clear_updated_min(); - } + /** * Gets the optional 'updatedMin' attribute. @@ -2459,13 +2360,7 @@ class CommentsResource_ListMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -2492,13 +2387,7 @@ class CommentsResource_ListMethod : public DriveServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -2588,8 +2477,6 @@ typedef client::ServiceRequestPager< */ class CommentsResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2597,19 +2484,15 @@ class CommentsResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] _content_ The data object to patch. - * */ CommentsResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const Comment& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const Comment& _content_); /** * Standard destructor. @@ -2668,8 +2551,6 @@ class CommentsResource_PatchMethod : public DriveServiceBaseRequest { */ class CommentsResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2677,19 +2558,15 @@ class CommentsResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] _content_ The data object to update. - * */ CommentsResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const Comment& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const Comment& _content_); /** * Standard destructor. @@ -2752,8 +2629,6 @@ class CommentsResource_UpdateMethod : public DriveServiceBaseRequest { */ class FilesResource_CopyMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2761,16 +2636,13 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to copy. - * * @param[in] _content_ The data object to copy. - * */ FilesResource_CopyMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File& _content_); /** * Standard destructor. @@ -2812,13 +2684,7 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { _have_ocr_language_ = false; client::ClearCppValueHelper(&ocr_language_); } - /** - * @deprecated - * @see clear_ocr_language - */ - void clear_ocrLanguage() { - clear_ocr_language(); - } + /** * Gets the optional 'ocrLanguage' attribute. @@ -2843,7 +2709,7 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { * Sets the 'ocrLanguage' attribute. * * @param[in] value If ocr is true, hints at the language to use. Valid - * values are ISO 639-1 codes. + * values are BCP 47 codes. */ void set_ocr_language(const string& value) { _have_ocr_language_ = true; @@ -2955,13 +2821,7 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { _have_timed_text_track_name_ = false; client::ClearCppValueHelper(&timed_text_track_name_); } - /** - * @deprecated - * @see clear_timed_text_track_name - */ - void clear_timedTextTrackName() { - clear_timed_text_track_name(); - } + /** * Gets the optional 'timedTextTrackName' attribute. @@ -3002,13 +2862,7 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { _have_timed_text_language_ = false; client::ClearCppValueHelper(&timed_text_language_); } - /** - * @deprecated - * @see clear_timed_text_language - */ - void clear_timedTextLanguage() { - clear_timed_text_language(); - } + /** * Gets the optional 'timedTextLanguage' attribute. @@ -3111,8 +2965,6 @@ class FilesResource_CopyMethod : public DriveServiceBaseRequest { */ class FilesResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3120,12 +2972,11 @@ class FilesResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to delete. - * */ FilesResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -3167,8 +3018,6 @@ class FilesResource_DeleteMethod : public DriveServiceBaseRequest { */ class FilesResource_EmptyTrashMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3177,8 +3026,8 @@ class FilesResource_EmptyTrashMethod : public DriveServiceBaseRequest { * creating the method instance. */ FilesResource_EmptyTrashMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -3186,7 +3035,6 @@ class FilesResource_EmptyTrashMethod : public DriveServiceBaseRequest { virtual ~FilesResource_EmptyTrashMethod(); private: - DISALLOW_COPY_AND_ASSIGN(FilesResource_EmptyTrashMethod); }; @@ -3204,13 +3052,12 @@ class FilesResource_EmptyTrashMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class FilesResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3218,12 +3065,11 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file in question. - * */ FilesResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -3232,44 +3078,60 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { /** - * Clears the 'projection' attribute so it is no longer set. + * Clears the 'acknowledgeAbuse' attribute so it is no longer + * set. */ - void clear_projection() { - _have_projection_ = false; - client::ClearCppValueHelper(&projection_); + void clear_acknowledge_abuse() { + _have_acknowledge_abuse_ = false; + client::ClearCppValueHelper(&acknowledge_abuse_); } /** - * Gets the optional 'projection' attribute. + * Gets the optional 'acknowledgeAbuse' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_projection() const { return projection_; } + bool get_acknowledge_abuse() const { return acknowledge_abuse_; } /** - * Gets a modifiable pointer to the optional projection' - * attribute. + * Sets the 'acknowledgeAbuse' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value Whether the user is acknowledging the risk of + * downloading known malware or other abusive files. */ - string* mutable_projection() { - _have_projection_ = true; - return &projection_; + void set_acknowledge_abuse(bool value) { + _have_acknowledge_abuse_ = true; + acknowledge_abuse_ = value; } - /** - * Sets the 'projection' attribute. - * - * @param[in] value This parameter is deprecated and has no function. + * Clears the 'updateViewedDate' attribute so it is no longer + * set. */ - void set_projection(const string& value) { - _have_projection_ = true; - projection_ = value; + void clear_update_viewed_date() { + _have_update_viewed_date_ = false; + client::ClearCppValueHelper(&update_viewed_date_); } + /** + * Gets the optional 'updateViewedDate' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_update_viewed_date() const { return update_viewed_date_; } + + /** + * Sets the 'updateViewedDate' attribute. + * + * @param[in] value Whether to update the view date after successfully + * retrieving the file. + */ + void set_update_viewed_date(bool value) { + _have_update_viewed_date_ = true; + update_viewed_date_ = value; + } /** * Clears the 'revisionId' attribute so it is no longer set. @@ -3278,13 +3140,7 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { _have_revision_id_ = false; client::ClearCppValueHelper(&revision_id_); } - /** - * @deprecated - * @see clear_revision_id - */ - void clear_revisionId() { - clear_revision_id(); - } + /** * Gets the optional 'revisionId' attribute. @@ -3319,72 +3175,41 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { /** - * Clears the 'acknowledgeAbuse' attribute so it is no longer - * set. - */ - void clear_acknowledge_abuse() { - _have_acknowledge_abuse_ = false; - client::ClearCppValueHelper(&acknowledge_abuse_); - } - /** - * @deprecated - * @see clear_acknowledge_abuse + * Clears the 'projection' attribute so it is no longer set. */ - void clear_acknowledgeAbuse() { - clear_acknowledge_abuse(); + void clear_projection() { + _have_projection_ = false; + client::ClearCppValueHelper(&projection_); } + /** - * Gets the optional 'acknowledgeAbuse' attribute. + * Gets the optional 'projection' attribute. * * If the value is not set then the default value will be returned. */ - bool get_acknowledge_abuse() const { return acknowledge_abuse_; } + const string& get_projection() const { return projection_; } /** - * Sets the 'acknowledgeAbuse' attribute. + * Gets a modifiable pointer to the optional projection' + * attribute. * - * @param[in] value Whether the user is acknowledging the risk of - * downloading known malware or other abusive files. Ignored unless - * alt=media is specified. - */ - void set_acknowledge_abuse(bool value) { - _have_acknowledge_abuse_ = true; - acknowledge_abuse_ = value; - } - - /** - * Clears the 'updateViewedDate' attribute so it is no longer - * set. - */ - void clear_update_viewed_date() { - _have_update_viewed_date_ = false; - client::ClearCppValueHelper(&update_viewed_date_); - } - /** - * @deprecated - * @see clear_update_viewed_date + * @return The value can be set by dereferencing the pointer. */ - void clear_updateViewedDate() { - clear_update_viewed_date(); + string* mutable_projection() { + _have_projection_ = true; + return &projection_; } - /** - * Gets the optional 'updateViewedDate' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_update_viewed_date() const { return update_viewed_date_; } /** - * Sets the 'updateViewedDate' attribute. + * Sets the 'projection' attribute. * - * @param[in] value Whether to update the view date after successfully - * retrieving the file. + * @param[in] value This parameter is deprecated and has no function. */ - void set_update_viewed_date(bool value) { - _have_update_viewed_date_ = true; - update_viewed_date_ = value; + void set_projection(const string& value) { + _have_projection_ = true; + projection_ = value; } /** @@ -3444,14 +3269,14 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { private: string file_id_; - string projection_; - string revision_id_; bool acknowledge_abuse_; bool update_viewed_date_; - bool _have_projection_ : 1; - bool _have_revision_id_ : 1; + string revision_id_; + string projection_; bool _have_acknowledge_abuse_ : 1; bool _have_update_viewed_date_ : 1; + bool _have_revision_id_ : 1; + bool _have_projection_ : 1; DISALLOW_COPY_AND_ASSIGN(FilesResource_GetMethod); }; @@ -3472,7 +3297,6 @@ class FilesResource_GetMethod : public DriveServiceBaseRequest { */ class FilesResource_InsertMethod : public DriveServiceBaseRequest { public: - /** * The standard constructor takes all the required method parameters. * @@ -3487,26 +3311,26 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { FilesResource_InsertMethod( const DriveService* _service_, client::AuthorizationCredential* _credential_); - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] _metadata_ The metadata object to insert. If this is NULL then - * do not upload any metadata. + * @param[in] _metadata_ The metadata object to insert. If this + * is NULL then do not upload any metadata. * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. + * _media_content_reader_. * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore _media_content_type_. + * this is NULL then do not upload any media and ignore + * _media_content_type_. */ FilesResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const File* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const File* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); /** * Standard destructor. @@ -3549,13 +3373,7 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { _have_use_content_as_indexable_text_ = false; client::ClearCppValueHelper(&use_content_as_indexable_text_); } - /** - * @deprecated - * @see clear_use_content_as_indexable_text - */ - void clear_useContentAsIndexableText() { - clear_use_content_as_indexable_text(); - } + /** * Gets the optional 'useContentAsIndexableText' attribute. @@ -3581,13 +3399,7 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { _have_ocr_language_ = false; client::ClearCppValueHelper(&ocr_language_); } - /** - * @deprecated - * @see clear_ocr_language - */ - void clear_ocrLanguage() { - clear_ocr_language(); - } + /** * Gets the optional 'ocrLanguage' attribute. @@ -3612,7 +3424,7 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { * Sets the 'ocrLanguage' attribute. * * @param[in] value If ocr is true, hints at the language to use. Valid - * values are ISO 639-1 codes. + * values are BCP 47 codes. */ void set_ocr_language(const string& value) { _have_ocr_language_ = true; @@ -3724,13 +3536,7 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { _have_timed_text_track_name_ = false; client::ClearCppValueHelper(&timed_text_track_name_); } - /** - * @deprecated - * @see clear_timed_text_track_name - */ - void clear_timedTextTrackName() { - clear_timed_text_track_name(); - } + /** * Gets the optional 'timedTextTrackName' attribute. @@ -3771,13 +3577,7 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { _have_timed_text_language_ = false; client::ClearCppValueHelper(&timed_text_language_); } - /** - * @deprecated - * @see clear_timed_text_language - */ - void clear_timedTextLanguage() { - clear_timed_text_language(); - } + /** * Gets the optional 'timedTextLanguage' attribute. @@ -3845,35 +3645,19 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { return DriveServiceBaseRequest::ExecuteAndParseResponse(data); } - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); /** * Returns MediaUploader for uploading the content. */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } /** * Returns the specification for media upload using the simple protocol. */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; /** * Returns the specification for media upload using the resumable protocol. */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; private: bool convert_; @@ -3892,8 +3676,6 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { bool _have_ocr_ : 1; bool _have_timed_text_track_name_ : 1; bool _have_timed_text_language_ : 1; - std::unique_ptr _uploader_; - DISALLOW_COPY_AND_ASSIGN(FilesResource_InsertMethod); }; @@ -3911,13 +3693,12 @@ class FilesResource_InsertMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class FilesResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3926,8 +3707,8 @@ class FilesResource_ListMethod : public DriveServiceBaseRequest { * creating the method instance. */ FilesResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_); /** * Standard destructor. @@ -3935,6 +3716,72 @@ class FilesResource_ListMethod : public DriveServiceBaseRequest { virtual ~FilesResource_ListMethod(); + /** + * Clears the 'projection' attribute so it is no longer set. + */ + void clear_projection() { + _have_projection_ = false; + client::ClearCppValueHelper(&projection_); + } + + + /** + * Gets the optional 'projection' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_projection() const { return projection_; } + + /** + * Gets a modifiable pointer to the optional projection' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_projection() { + _have_projection_ = true; + return &projection_; + } + + + /** + * Sets the 'projection' attribute. + * + * @param[in] value This parameter is deprecated and has no function. + */ + void set_projection(const string& value) { + _have_projection_ = true; + projection_ = value; + } + + + + /** + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } + + + /** + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + int32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value Maximum number of files to return. + */ + void set_max_results(int32 value) { + _have_max_results_ = true; + max_results_ = value; + } + /** * Clears the 'q' attribute so it is no longer set. */ @@ -3981,13 +3828,7 @@ class FilesResource_ListMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -4021,115 +3862,81 @@ class FilesResource_ListMethod : public DriveServiceBaseRequest { /** - * Clears the 'corpus' attribute so it is no longer set. + * Clears the 'spaces' attribute so it is no longer set. */ - void clear_corpus() { - _have_corpus_ = false; - client::ClearCppValueHelper(&corpus_); + void clear_spaces() { + _have_spaces_ = false; + client::ClearCppValueHelper(&spaces_); } /** - * Gets the optional 'corpus' attribute. + * Gets the optional 'spaces' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_corpus() const { return corpus_; } + const string& get_spaces() const { return spaces_; } /** - * Gets a modifiable pointer to the optional corpus' attribute. + * Gets a modifiable pointer to the optional spaces' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_corpus() { - _have_corpus_ = true; - return &corpus_; + string* mutable_spaces() { + _have_spaces_ = true; + return &spaces_; } /** - * Sets the 'corpus' attribute. + * Sets the 'spaces' attribute. * - * @param[in] value The body of items (files/documents) to which the query - * applies. + * @param[in] value A comma-separated list of spaces to query. Supported + * values are 'drive' and 'appDataFolder'. */ - void set_corpus(const string& value) { - _have_corpus_ = true; - corpus_ = value; + void set_spaces(const string& value) { + _have_spaces_ = true; + spaces_ = value; } /** - * Clears the 'projection' attribute so it is no longer set. + * Clears the 'corpus' attribute so it is no longer set. */ - void clear_projection() { - _have_projection_ = false; - client::ClearCppValueHelper(&projection_); + void clear_corpus() { + _have_corpus_ = false; + client::ClearCppValueHelper(&corpus_); } /** - * Gets the optional 'projection' attribute. + * Gets the optional 'corpus' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_projection() const { return projection_; } + const string& get_corpus() const { return corpus_; } /** - * Gets a modifiable pointer to the optional projection' - * attribute. + * Gets a modifiable pointer to the optional corpus' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_projection() { - _have_projection_ = true; - return &projection_; + string* mutable_corpus() { + _have_corpus_ = true; + return &corpus_; } /** - * Sets the 'projection' attribute. + * Sets the 'corpus' attribute. * - * @param[in] value This parameter is deprecated and has no function. + * @param[in] value The body of items (files/documents) to which the query + * applies. */ - void set_projection(const string& value) { - _have_projection_ = true; - projection_ = value; - } - - - - /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } - - /** - * Gets the optional 'maxResults' attribute. - * - * If the value is not set then the default value will be returned. - */ - int32 get_max_results() const { return max_results_; } - - /** - * Sets the 'maxResults' attribute. - * - * @param[in] value Maximum number of files to return. - */ - void set_max_results(int32 value) { - _have_max_results_ = true; - max_results_ = value; + void set_corpus(const string& value) { + _have_corpus_ = true; + corpus_ = value; } /** @@ -4170,16 +3977,18 @@ class FilesResource_ListMethod : public DriveServiceBaseRequest { } private: + string projection_; + int32 max_results_; string q_; string page_token_; + string spaces_; string corpus_; - string projection_; - int32 max_results_; + bool _have_projection_ : 1; + bool _have_max_results_ : 1; bool _have_q_ : 1; bool _have_page_token_ : 1; + bool _have_spaces_ : 1; bool _have_corpus_ : 1; - bool _have_projection_ : 1; - bool _have_max_results_ : 1; DISALLOW_COPY_AND_ASSIGN(FilesResource_ListMethod); }; @@ -4202,12 +4011,11 @@ typedef client::ServiceRequestPager< * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.scripts */ class FilesResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4215,16 +4023,13 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to update. - * * @param[in] _content_ The data object to patch. - * */ FilesResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File& _content_); /** * Standard destructor. @@ -4239,13 +4044,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_add_parents_ = false; client::ClearCppValueHelper(&add_parents_); } - /** - * @deprecated - * @see clear_add_parents - */ - void clear_addParents() { - clear_add_parents(); - } + /** * Gets the optional 'addParents' attribute. @@ -4286,13 +4085,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_update_viewed_date_ = false; client::ClearCppValueHelper(&update_viewed_date_); } - /** - * @deprecated - * @see clear_update_viewed_date - */ - void clear_updateViewedDate() { - clear_update_viewed_date(); - } + /** * Gets the optional 'updateViewedDate' attribute. @@ -4319,13 +4112,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_remove_parents_ = false; client::ClearCppValueHelper(&remove_parents_); } - /** - * @deprecated - * @see clear_remove_parents - */ - void clear_removeParents() { - clear_remove_parents(); - } + /** * Gets the optional 'removeParents' attribute. @@ -4366,13 +4153,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_set_modified_date_ = false; client::ClearCppValueHelper(&set_modified_date_); } - /** - * @deprecated - * @see clear_set_modified_date - */ - void clear_setModifiedDate() { - clear_set_modified_date(); - } + /** * Gets the optional 'setModifiedDate' attribute. @@ -4427,13 +4208,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_use_content_as_indexable_text_ = false; client::ClearCppValueHelper(&use_content_as_indexable_text_); } - /** - * @deprecated - * @see clear_use_content_as_indexable_text - */ - void clear_useContentAsIndexableText() { - clear_use_content_as_indexable_text(); - } + /** * Gets the optional 'useContentAsIndexableText' attribute. @@ -4459,13 +4234,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_ocr_language_ = false; client::ClearCppValueHelper(&ocr_language_); } - /** - * @deprecated - * @see clear_ocr_language - */ - void clear_ocrLanguage() { - clear_ocr_language(); - } + /** * Gets the optional 'ocrLanguage' attribute. @@ -4490,7 +4259,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { * Sets the 'ocrLanguage' attribute. * * @param[in] value If ocr is true, hints at the language to use. Valid - * values are ISO 639-1 codes. + * values are BCP 47 codes. */ void set_ocr_language(const string& value) { _have_ocr_language_ = true; @@ -4533,13 +4302,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_new_revision_ = false; client::ClearCppValueHelper(&new_revision_); } - /** - * @deprecated - * @see clear_new_revision - */ - void clear_newRevision() { - clear_new_revision(); - } + /** * Gets the optional 'newRevision' attribute. @@ -4596,13 +4359,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_timed_text_language_ = false; client::ClearCppValueHelper(&timed_text_language_); } - /** - * @deprecated - * @see clear_timed_text_language - */ - void clear_timedTextLanguage() { - clear_timed_text_language(); - } + /** * Gets the optional 'timedTextLanguage' attribute. @@ -4643,13 +4400,7 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { _have_timed_text_track_name_ = false; client::ClearCppValueHelper(&timed_text_track_name_); } - /** - * @deprecated - * @see clear_timed_text_track_name - */ - void clear_timedTextTrackName() { - clear_timed_text_track_name(); - } + /** * Gets the optional 'timedTextTrackName' attribute. @@ -4760,11 +4511,10 @@ class FilesResource_PatchMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata */ class FilesResource_TouchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4772,12 +4522,11 @@ class FilesResource_TouchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to update. - * */ FilesResource_TouchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -4837,8 +4586,6 @@ class FilesResource_TouchMethod : public DriveServiceBaseRequest { */ class FilesResource_TrashMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4846,12 +4593,11 @@ class FilesResource_TrashMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to trash. - * */ FilesResource_TrashMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -4911,8 +4657,6 @@ class FilesResource_TrashMethod : public DriveServiceBaseRequest { */ class FilesResource_UntrashMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -4920,12 +4664,11 @@ class FilesResource_UntrashMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to untrash. - * */ FilesResource_UntrashMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -4982,11 +4725,11 @@ class FilesResource_UntrashMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.scripts */ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { public: - /** * The standard constructor takes all the required method parameters. * @@ -5004,7 +4747,6 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { const DriveService* _service_, client::AuthorizationCredential* _credential_, const StringPiece& file_id); - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5012,21 +4754,21 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file to update. - * - * @param[in] _metadata_ The metadata object to update. If this is NULL then - * do not upload any metadata. + * @param[in] _metadata_ The metadata object to update. If this + * is NULL then do not upload any metadata. * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. + * _media_content_reader_. * @param[in] _media_content_reader_ The media content to update. If - * this is NULL then do not upload any media and ignore _media_content_type_. + * this is NULL then do not upload any media and ignore + * _media_content_type_. */ FilesResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); /** * Standard destructor. @@ -5041,13 +4783,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_add_parents_ = false; client::ClearCppValueHelper(&add_parents_); } - /** - * @deprecated - * @see clear_add_parents - */ - void clear_addParents() { - clear_add_parents(); - } + /** * Gets the optional 'addParents' attribute. @@ -5088,13 +4824,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_update_viewed_date_ = false; client::ClearCppValueHelper(&update_viewed_date_); } - /** - * @deprecated - * @see clear_update_viewed_date - */ - void clear_updateViewedDate() { - clear_update_viewed_date(); - } + /** * Gets the optional 'updateViewedDate' attribute. @@ -5121,13 +4851,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_remove_parents_ = false; client::ClearCppValueHelper(&remove_parents_); } - /** - * @deprecated - * @see clear_remove_parents - */ - void clear_removeParents() { - clear_remove_parents(); - } + /** * Gets the optional 'removeParents' attribute. @@ -5168,13 +4892,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_set_modified_date_ = false; client::ClearCppValueHelper(&set_modified_date_); } - /** - * @deprecated - * @see clear_set_modified_date - */ - void clear_setModifiedDate() { - clear_set_modified_date(); - } + /** * Gets the optional 'setModifiedDate' attribute. @@ -5229,13 +4947,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_use_content_as_indexable_text_ = false; client::ClearCppValueHelper(&use_content_as_indexable_text_); } - /** - * @deprecated - * @see clear_use_content_as_indexable_text - */ - void clear_useContentAsIndexableText() { - clear_use_content_as_indexable_text(); - } + /** * Gets the optional 'useContentAsIndexableText' attribute. @@ -5261,13 +4973,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_ocr_language_ = false; client::ClearCppValueHelper(&ocr_language_); } - /** - * @deprecated - * @see clear_ocr_language - */ - void clear_ocrLanguage() { - clear_ocr_language(); - } + /** * Gets the optional 'ocrLanguage' attribute. @@ -5292,7 +4998,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { * Sets the 'ocrLanguage' attribute. * * @param[in] value If ocr is true, hints at the language to use. Valid - * values are ISO 639-1 codes. + * values are BCP 47 codes. */ void set_ocr_language(const string& value) { _have_ocr_language_ = true; @@ -5335,13 +5041,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_new_revision_ = false; client::ClearCppValueHelper(&new_revision_); } - /** - * @deprecated - * @see clear_new_revision - */ - void clear_newRevision() { - clear_new_revision(); - } + /** * Gets the optional 'newRevision' attribute. @@ -5398,13 +5098,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_timed_text_language_ = false; client::ClearCppValueHelper(&timed_text_language_); } - /** - * @deprecated - * @see clear_timed_text_language - */ - void clear_timedTextLanguage() { - clear_timed_text_language(); - } + /** * Gets the optional 'timedTextLanguage' attribute. @@ -5445,13 +5139,7 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { _have_timed_text_track_name_ = false; client::ClearCppValueHelper(&timed_text_track_name_); } - /** - * @deprecated - * @see clear_timed_text_track_name - */ - void clear_timedTextTrackName() { - clear_timed_text_track_name(); - } + /** * Gets the optional 'timedTextTrackName' attribute. @@ -5519,35 +5207,19 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { return DriveServiceBaseRequest::ExecuteAndParseResponse(data); } - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); /** * Returns MediaUploader for uploading the content. */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } /** * Returns the specification for media upload using the simple protocol. */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; /** * Returns the specification for media upload using the resumable protocol. */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; private: string file_id_; @@ -5575,8 +5247,6 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { bool _have_ocr_ : 1; bool _have_timed_text_language_ : 1; bool _have_timed_text_track_name_ : 1; - std::unique_ptr _uploader_; - DISALLOW_COPY_AND_ASSIGN(FilesResource_UpdateMethod); }; @@ -5594,13 +5264,12 @@ class FilesResource_UpdateMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class FilesResource_WatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5608,16 +5277,13 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file in question. - * * @param[in] _content_ The data object to watch. - * */ FilesResource_WatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Channel& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Channel& _content_); /** * Standard destructor. @@ -5626,44 +5292,60 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { /** - * Clears the 'projection' attribute so it is no longer set. + * Clears the 'acknowledgeAbuse' attribute so it is no longer + * set. */ - void clear_projection() { - _have_projection_ = false; - client::ClearCppValueHelper(&projection_); + void clear_acknowledge_abuse() { + _have_acknowledge_abuse_ = false; + client::ClearCppValueHelper(&acknowledge_abuse_); } /** - * Gets the optional 'projection' attribute. + * Gets the optional 'acknowledgeAbuse' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_projection() const { return projection_; } + bool get_acknowledge_abuse() const { return acknowledge_abuse_; } /** - * Gets a modifiable pointer to the optional projection' - * attribute. + * Sets the 'acknowledgeAbuse' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value Whether the user is acknowledging the risk of + * downloading known malware or other abusive files. */ - string* mutable_projection() { - _have_projection_ = true; - return &projection_; + void set_acknowledge_abuse(bool value) { + _have_acknowledge_abuse_ = true; + acknowledge_abuse_ = value; } - /** - * Sets the 'projection' attribute. - * - * @param[in] value This parameter is deprecated and has no function. + * Clears the 'updateViewedDate' attribute so it is no longer + * set. */ - void set_projection(const string& value) { - _have_projection_ = true; - projection_ = value; + void clear_update_viewed_date() { + _have_update_viewed_date_ = false; + client::ClearCppValueHelper(&update_viewed_date_); } + /** + * Gets the optional 'updateViewedDate' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_update_viewed_date() const { return update_viewed_date_; } + + /** + * Sets the 'updateViewedDate' attribute. + * + * @param[in] value Whether to update the view date after successfully + * retrieving the file. + */ + void set_update_viewed_date(bool value) { + _have_update_viewed_date_ = true; + update_viewed_date_ = value; + } /** * Clears the 'revisionId' attribute so it is no longer set. @@ -5672,13 +5354,7 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { _have_revision_id_ = false; client::ClearCppValueHelper(&revision_id_); } - /** - * @deprecated - * @see clear_revision_id - */ - void clear_revisionId() { - clear_revision_id(); - } + /** * Gets the optional 'revisionId' attribute. @@ -5713,72 +5389,41 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { /** - * Clears the 'acknowledgeAbuse' attribute so it is no longer - * set. - */ - void clear_acknowledge_abuse() { - _have_acknowledge_abuse_ = false; - client::ClearCppValueHelper(&acknowledge_abuse_); - } - /** - * @deprecated - * @see clear_acknowledge_abuse + * Clears the 'projection' attribute so it is no longer set. */ - void clear_acknowledgeAbuse() { - clear_acknowledge_abuse(); + void clear_projection() { + _have_projection_ = false; + client::ClearCppValueHelper(&projection_); } + /** - * Gets the optional 'acknowledgeAbuse' attribute. + * Gets the optional 'projection' attribute. * * If the value is not set then the default value will be returned. */ - bool get_acknowledge_abuse() const { return acknowledge_abuse_; } + const string& get_projection() const { return projection_; } /** - * Sets the 'acknowledgeAbuse' attribute. + * Gets a modifiable pointer to the optional projection' + * attribute. * - * @param[in] value Whether the user is acknowledging the risk of - * downloading known malware or other abusive files. Ignored unless - * alt=media is specified. - */ - void set_acknowledge_abuse(bool value) { - _have_acknowledge_abuse_ = true; - acknowledge_abuse_ = value; - } - - /** - * Clears the 'updateViewedDate' attribute so it is no longer - * set. - */ - void clear_update_viewed_date() { - _have_update_viewed_date_ = false; - client::ClearCppValueHelper(&update_viewed_date_); - } - /** - * @deprecated - * @see clear_update_viewed_date + * @return The value can be set by dereferencing the pointer. */ - void clear_updateViewedDate() { - clear_update_viewed_date(); + string* mutable_projection() { + _have_projection_ = true; + return &projection_; } - /** - * Gets the optional 'updateViewedDate' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_update_viewed_date() const { return update_viewed_date_; } /** - * Sets the 'updateViewedDate' attribute. + * Sets the 'projection' attribute. * - * @param[in] value Whether to update the view date after successfully - * retrieving the file. + * @param[in] value This parameter is deprecated and has no function. */ - void set_update_viewed_date(bool value) { - _have_update_viewed_date_ = true; - update_viewed_date_ = value; + void set_projection(const string& value) { + _have_projection_ = true; + projection_ = value; } /** @@ -5838,14 +5483,14 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { private: string file_id_; - string projection_; - string revision_id_; bool acknowledge_abuse_; bool update_viewed_date_; - bool _have_projection_ : 1; - bool _have_revision_id_ : 1; + string revision_id_; + string projection_; bool _have_acknowledge_abuse_ : 1; - bool _have_update_viewed_date_ : 1; string _content_; + bool _have_update_viewed_date_ : 1; + bool _have_revision_id_ : 1; + bool _have_projection_ : 1; string _content_; DISALLOW_COPY_AND_ASSIGN(FilesResource_WatchMethod); }; @@ -5866,8 +5511,6 @@ class FilesResource_WatchMethod : public DriveServiceBaseRequest { */ class ParentsResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5875,15 +5518,13 @@ class ParentsResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] parent_id The ID of the parent. - * */ ParentsResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& parent_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& parent_id); /** * Standard destructor. @@ -5925,13 +5566,12 @@ class ParentsResource_DeleteMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ParentsResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5939,15 +5579,13 @@ class ParentsResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] parent_id The ID of the parent. - * */ ParentsResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& parent_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& parent_id); /** * Standard destructor. @@ -6007,8 +5645,6 @@ class ParentsResource_GetMethod : public DriveServiceBaseRequest { */ class ParentsResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6016,16 +5652,13 @@ class ParentsResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] _content_ The data object to insert. - * */ ParentsResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const ParentReference& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const ParentReference& _content_); /** * Standard destructor. @@ -6081,13 +5714,12 @@ class ParentsResource_InsertMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class ParentsResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6095,12 +5727,11 @@ class ParentsResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * */ ParentsResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -6160,8 +5791,6 @@ class ParentsResource_ListMethod : public DriveServiceBaseRequest { */ class PermissionsResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6169,15 +5798,13 @@ class PermissionsResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] permission_id The ID for the permission. - * */ PermissionsResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id); /** * Standard destructor. @@ -6218,13 +5845,12 @@ class PermissionsResource_DeleteMethod : public DriveServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class PermissionsResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6232,15 +5858,13 @@ class PermissionsResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] permission_id The ID for the permission. - * */ PermissionsResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id); /** * Standard destructor. @@ -6298,13 +5922,12 @@ class PermissionsResource_GetMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.apps.readonly * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class PermissionsResource_GetIdForEmailMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6312,12 +5935,11 @@ class PermissionsResource_GetIdForEmailMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] email The email address for which to return a permission ID. - * */ PermissionsResource_GetIdForEmailMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& email); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& email); /** * Standard destructor. @@ -6375,8 +5997,6 @@ class PermissionsResource_GetIdForEmailMethod : public DriveServiceBaseRequest { */ class PermissionsResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6384,16 +6004,13 @@ class PermissionsResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] _content_ The data object to insert. - * */ PermissionsResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Permission& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Permission& _content_); /** * Standard destructor. @@ -6408,13 +6025,7 @@ class PermissionsResource_InsertMethod : public DriveServiceBaseRequest { _have_email_message_ = false; client::ClearCppValueHelper(&email_message_); } - /** - * @deprecated - * @see clear_email_message - */ - void clear_emailMessage() { - clear_email_message(); - } + /** * Gets the optional 'emailMessage' attribute. @@ -6455,13 +6066,7 @@ class PermissionsResource_InsertMethod : public DriveServiceBaseRequest { _have_send_notification_emails_ = false; client::ClearCppValueHelper(&send_notification_emails_); } - /** - * @deprecated - * @see clear_send_notification_emails - */ - void clear_sendNotificationEmails() { - clear_send_notification_emails(); - } + /** * Gets the optional 'sendNotificationEmails' attribute. @@ -6540,13 +6145,12 @@ class PermissionsResource_InsertMethod : public DriveServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class PermissionsResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6554,12 +6158,11 @@ class PermissionsResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * */ PermissionsResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -6617,8 +6220,6 @@ class PermissionsResource_ListMethod : public DriveServiceBaseRequest { */ class PermissionsResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6626,19 +6227,15 @@ class PermissionsResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] permission_id The ID for the permission. - * * @param[in] _content_ The data object to patch. - * */ PermissionsResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id, - const Permission& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id, + const Permission& _content_); /** * Standard destructor. @@ -6654,13 +6251,7 @@ class PermissionsResource_PatchMethod : public DriveServiceBaseRequest { _have_transfer_ownership_ = false; client::ClearCppValueHelper(&transfer_ownership_); } - /** - * @deprecated - * @see clear_transfer_ownership - */ - void clear_transferOwnership() { - clear_transfer_ownership(); - } + /** * Gets the optional 'transferOwnership' attribute. @@ -6741,8 +6332,6 @@ class PermissionsResource_PatchMethod : public DriveServiceBaseRequest { */ class PermissionsResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6750,19 +6339,15 @@ class PermissionsResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] permission_id The ID for the permission. - * * @param[in] _content_ The data object to update. - * */ PermissionsResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id, - const Permission& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id, + const Permission& _content_); /** * Standard destructor. @@ -6778,13 +6363,7 @@ class PermissionsResource_UpdateMethod : public DriveServiceBaseRequest { _have_transfer_ownership_ = false; client::ClearCppValueHelper(&transfer_ownership_); } - /** - * @deprecated - * @see clear_transfer_ownership - */ - void clear_transferOwnership() { - clear_transfer_ownership(); - } + /** * Gets the optional 'transferOwnership' attribute. @@ -6865,11 +6444,10 @@ class PermissionsResource_UpdateMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata */ class PropertiesResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6877,15 +6455,13 @@ class PropertiesResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] property_key The key of the property. - * */ PropertiesResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key); /** * Standard destructor. @@ -6974,13 +6550,12 @@ class PropertiesResource_DeleteMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class PropertiesResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6988,15 +6563,13 @@ class PropertiesResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] property_key The key of the property. - * */ PropertiesResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key); /** * Standard destructor. @@ -7100,11 +6673,10 @@ class PropertiesResource_GetMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata */ class PropertiesResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7112,16 +6684,13 @@ class PropertiesResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] _content_ The data object to insert. - * */ PropertiesResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Property& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Property& _content_); /** * Standard destructor. @@ -7177,13 +6746,12 @@ class PropertiesResource_InsertMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class PropertiesResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7191,12 +6759,11 @@ class PropertiesResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * */ PropertiesResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -7252,11 +6819,10 @@ class PropertiesResource_ListMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata */ class PropertiesResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7264,19 +6830,15 @@ class PropertiesResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] property_key The key of the property. - * * @param[in] _content_ The data object to patch. - * */ PropertiesResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key, - const Property& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key, + const Property& _content_); /** * Standard destructor. @@ -7380,11 +6942,10 @@ class PropertiesResource_PatchMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata */ class PropertiesResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7392,19 +6953,15 @@ class PropertiesResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] property_key The key of the property. - * * @param[in] _content_ The data object to update. - * */ PropertiesResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key, - const Property& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key, + const Property& _content_); /** * Standard destructor. @@ -7513,8 +7070,6 @@ class PropertiesResource_UpdateMethod : public DriveServiceBaseRequest { */ class RealtimeResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7523,12 +7078,11 @@ class RealtimeResource_GetMethod : public DriveServiceBaseRequest { * creating the method instance. * @param[in] file_id The ID of the file that the Realtime API data model is * associated with. - * */ RealtimeResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -7627,8 +7181,6 @@ class RealtimeResource_GetMethod : public DriveServiceBaseRequest { */ class RealtimeResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7637,18 +7189,18 @@ class RealtimeResource_UpdateMethod : public DriveServiceBaseRequest { * creating the method instance. * @param[in] file_id The ID of the file that the Realtime API data model is * associated with. - * * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. + * _media_content_reader_. * @param[in] _media_content_reader_ The media content to update. If - * this is NULL then do not upload any media and ignore _media_content_type_. + * this is NULL then do not upload any media and ignore + * _media_content_type_. */ RealtimeResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); /** * Standard destructor. @@ -7663,13 +7215,7 @@ class RealtimeResource_UpdateMethod : public DriveServiceBaseRequest { _have_base_revision_ = false; client::ClearCppValueHelper(&base_revision_); } - /** - * @deprecated - * @see clear_base_revision - */ - void clear_baseRevision() { - clear_base_revision(); - } + /** * Gets the optional 'baseRevision' attribute. @@ -7726,42 +7272,24 @@ class RealtimeResource_UpdateMethod : public DriveServiceBaseRequest { virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); /** * Returns MediaUploader for uploading the content. */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } /** * Returns the specification for media upload using the simple protocol. */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; /** * Returns the specification for media upload using the resumable protocol. */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; private: string file_id_; string base_revision_; bool _have_base_revision_ : 1; - std::unique_ptr _uploader_; - DISALLOW_COPY_AND_ASSIGN(RealtimeResource_UpdateMethod); }; @@ -7782,8 +7310,6 @@ class RealtimeResource_UpdateMethod : public DriveServiceBaseRequest { */ class RepliesResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7791,18 +7317,15 @@ class RepliesResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] reply_id The ID of the reply. - * */ RepliesResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id); /** * Standard destructor. @@ -7848,8 +7371,6 @@ class RepliesResource_DeleteMethod : public DriveServiceBaseRequest { */ class RepliesResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7857,18 +7378,15 @@ class RepliesResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] reply_id The ID of the reply. - * */ RepliesResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id); /** * Standard destructor. @@ -7884,13 +7402,7 @@ class RepliesResource_GetMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -7971,8 +7483,6 @@ class RepliesResource_GetMethod : public DriveServiceBaseRequest { */ class RepliesResource_InsertMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -7980,19 +7490,15 @@ class RepliesResource_InsertMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] _content_ The data object to insert. - * */ RepliesResource_InsertMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const CommentReply& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const CommentReply& _content_); /** * Standard destructor. @@ -8052,8 +7558,6 @@ class RepliesResource_InsertMethod : public DriveServiceBaseRequest { */ class RepliesResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8061,15 +7565,13 @@ class RepliesResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * */ RepliesResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id); /** * Standard destructor. @@ -8084,14 +7586,8 @@ class RepliesResource_ListMethod : public DriveServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } - + + /** * Gets the optional 'pageToken' attribute. * @@ -8133,13 +7629,7 @@ class RepliesResource_ListMethod : public DriveServiceBaseRequest { _have_include_deleted_ = false; client::ClearCppValueHelper(&include_deleted_); } - /** - * @deprecated - * @see clear_include_deleted - */ - void clear_includeDeleted() { - clear_include_deleted(); - } + /** * Gets the optional 'includeDeleted' attribute. @@ -8166,13 +7656,7 @@ class RepliesResource_ListMethod : public DriveServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -8261,8 +7745,6 @@ typedef client::ServiceRequestPager< */ class RepliesResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8270,22 +7752,17 @@ class RepliesResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] reply_id The ID of the reply. - * * @param[in] _content_ The data object to patch. - * */ RepliesResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id, - const CommentReply& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id, + const CommentReply& _content_); /** * Standard destructor. @@ -8345,8 +7822,6 @@ class RepliesResource_PatchMethod : public DriveServiceBaseRequest { */ class RepliesResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8354,22 +7829,17 @@ class RepliesResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] comment_id The ID of the comment. - * * @param[in] reply_id The ID of the reply. - * * @param[in] _content_ The data object to update. - * */ RepliesResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id, - const CommentReply& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id, + const CommentReply& _content_); /** * Standard destructor. @@ -8432,8 +7902,6 @@ class RepliesResource_UpdateMethod : public DriveServiceBaseRequest { */ class RevisionsResource_DeleteMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8441,15 +7909,13 @@ class RevisionsResource_DeleteMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] revision_id The ID of the revision. - * */ RevisionsResource_DeleteMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id); /** * Standard destructor. @@ -8491,13 +7957,12 @@ class RevisionsResource_DeleteMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class RevisionsResource_GetMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8505,15 +7970,13 @@ class RevisionsResource_GetMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * * @param[in] revision_id The ID of the revision. - * */ RevisionsResource_GetMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id); /** * Standard destructor. @@ -8570,13 +8033,12 @@ class RevisionsResource_GetMethod : public DriveServiceBaseRequest { * https://www.googleapis.com/auth/drive * https://www.googleapis.com/auth/drive.appdata * https://www.googleapis.com/auth/drive.file + * https://www.googleapis.com/auth/drive.metadata * https://www.googleapis.com/auth/drive.metadata.readonly * https://www.googleapis.com/auth/drive.readonly */ class RevisionsResource_ListMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8584,12 +8046,11 @@ class RevisionsResource_ListMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID of the file. - * */ RevisionsResource_ListMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id); /** * Standard destructor. @@ -8648,8 +8109,6 @@ class RevisionsResource_ListMethod : public DriveServiceBaseRequest { */ class RevisionsResource_PatchMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8657,19 +8116,15 @@ class RevisionsResource_PatchMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] revision_id The ID for the revision. - * * @param[in] _content_ The data object to patch. - * */ RevisionsResource_PatchMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id, - const Revision& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id, + const Revision& _content_); /** * Standard destructor. @@ -8729,8 +8184,6 @@ class RevisionsResource_PatchMethod : public DriveServiceBaseRequest { */ class RevisionsResource_UpdateMethod : public DriveServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -8738,19 +8191,15 @@ class RevisionsResource_UpdateMethod : public DriveServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] file_id The ID for the file. - * * @param[in] revision_id The ID for the revision. - * * @param[in] _content_ The data object to update. - * */ RevisionsResource_UpdateMethod( - const DriveService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id, - const Revision& _content_ - ); + const DriveService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id, + const Revision& _content_); /** * Standard destructor. @@ -8806,1552 +8255,1521 @@ class RevisionsResource_UpdateMethod : public DriveServiceBaseRequest { */ class DriveService : public client::ClientService { public: - /** - * The name of the API that this was generated from. - */ - static const StringPiece googleapis_API_NAME; - - /** - * The version of the API that this interface was generated from. - */ - static const StringPiece googleapis_API_VERSION; - - /** - * The code generator used to generate this API. - */ - static const StringPiece googleapis_API_GENERATOR; - - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class AboutResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - AboutResource(DriveService* service); - - /** - * Standard destructor. - */ - ~AboutResource() {} - - - /** - * Creates a new AboutResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AboutResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(AboutResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class AppsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - AppsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~AppsResource() {} - - - /** - * Creates a new AppsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] app_id The ID of the app. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AppsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& app_id) const; - - /** - * Creates a new AppsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - AppsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(AppsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChangesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChangesResource(DriveService* service); - - /** - * Standard destructor. - */ - ~ChangesResource() {} - - - /** - * Creates a new ChangesResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] change_id The ID of the change. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChangesResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& change_id) const; - - /** - * Creates a new ChangesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChangesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * - * @see googleapis::googleapis::ServiceRequestPager - */ - ChangesResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new ChangesResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChangesResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const Channel& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChangesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChannelsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChannelsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~ChannelsResource() {} - - - /** - * Creates a new ChannelsResource_StopMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _content_ The data object to stop. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelsResource_StopMethod* NewStopMethod( - client::AuthorizationCredential* _credential_, - const Channel& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChannelsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChildrenResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChildrenResource(DriveService* service); - - /** - * Standard destructor. - */ - ~ChildrenResource() {} - - - /** - * Creates a new ChildrenResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] folder_id The ID of the folder. - * @param[in] child_id The ID of the child. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChildrenResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const StringPiece& child_id) const; - - /** - * Creates a new ChildrenResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] folder_id The ID of the folder. - * @param[in] child_id The ID of the child. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChildrenResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const StringPiece& child_id) const; - - /** - * Creates a new ChildrenResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] folder_id The ID of the folder. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChildrenResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id, - const ChildReference& _content_) const; - - /** - * Creates a new ChildrenResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] folder_id The ID of the folder. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChildrenResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] folder_id The ID of the folder. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - ChildrenResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& folder_id) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChildrenResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class CommentsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - CommentsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~CommentsResource() {} - - - /** - * Creates a new CommentsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id) const; - - /** - * Creates a new CommentsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id) const; - - /** - * Creates a new CommentsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Comment& _content_) const; - - /** - * Creates a new CommentsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] file_id The ID of the file. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - CommentsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new CommentsResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const Comment& _content_) const; - - /** - * Creates a new CommentsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - CommentsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const Comment& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(CommentsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class FilesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - FilesResource(DriveService* service); - - /** - * Standard destructor. - */ - ~FilesResource() {} - - - /** - * Creates a new FilesResource_CopyMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to copy. - * @param[in] _content_ The data object to copy. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_CopyMethod* NewCopyMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File& _content_) const; - - /** - * Creates a new FilesResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to delete. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new FilesResource_EmptyTrashMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_EmptyTrashMethod* NewEmptyTrashMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new FilesResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file in question. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - - /** - * Creates a new FilesResource_InsertMethod instance. - * @deprecated - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new FilesResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _metadata_ The metadata object to insert. If this is NULL - * then do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const File* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_ - ) const; - - /** - * Creates a new FilesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * - * @see googleapis::googleapis::ServiceRequestPager - */ - FilesResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new FilesResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to update. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File& _content_) const; - - /** - * Creates a new FilesResource_TouchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to update. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_TouchMethod* NewTouchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new FilesResource_TrashMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to trash. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_TrashMethod* NewTrashMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new FilesResource_UntrashMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to untrash. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_UntrashMethod* NewUntrashMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - - /** - * Creates a new FilesResource_UpdateMethod instance. - * @deprecated - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new FilesResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file to update. - * @param[in] _metadata_ The metadata object to update. If this is NULL - * then do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to update. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const File* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_ - ) const; - - /** - * Creates a new FilesResource_WatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file in question. - * @param[in] _content_ The data object to watch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - FilesResource_WatchMethod* NewWatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Channel& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(FilesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ParentsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ParentsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~ParentsResource() {} - - - /** - * Creates a new ParentsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] parent_id The ID of the parent. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ParentsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& parent_id) const; - - /** - * Creates a new ParentsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] parent_id The ID of the parent. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ParentsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& parent_id) const; - - /** - * Creates a new ParentsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ParentsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const ParentReference& _content_) const; - - /** - * Creates a new ParentsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ParentsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(ParentsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class PermissionsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - PermissionsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~PermissionsResource() {} - - - /** - * Creates a new PermissionsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] permission_id The ID for the permission. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id) const; - - /** - * Creates a new PermissionsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] permission_id The ID for the permission. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id) const; - - /** - * Creates a new PermissionsResource_GetIdForEmailMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] email The email address for which to return a permission ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_GetIdForEmailMethod* NewGetIdForEmailMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& email) const; - - /** - * Creates a new PermissionsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Permission& _content_) const; - - /** - * Creates a new PermissionsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new PermissionsResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] permission_id The ID for the permission. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id, - const Permission& _content_) const; - - /** - * Creates a new PermissionsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] permission_id The ID for the permission. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PermissionsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& permission_id, - const Permission& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(PermissionsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class PropertiesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - PropertiesResource(DriveService* service); - - /** - * Standard destructor. - */ - ~PropertiesResource() {} - - - /** - * Creates a new PropertiesResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] property_key The key of the property. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key) const; - - /** - * Creates a new PropertiesResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] property_key The key of the property. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key) const; - - /** - * Creates a new PropertiesResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const Property& _content_) const; - - /** - * Creates a new PropertiesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new PropertiesResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] property_key The key of the property. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key, - const Property& _content_) const; - - /** - * Creates a new PropertiesResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] property_key The key of the property. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PropertiesResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& property_key, - const Property& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(PropertiesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class RealtimeResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - RealtimeResource(DriveService* service); - - /** - * Standard destructor. - */ - ~RealtimeResource() {} - - - /** - * Creates a new RealtimeResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file that the Realtime API data model - * is associated with. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RealtimeResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new RealtimeResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file that the Realtime API data model - * is associated with. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to update. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RealtimeResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(RealtimeResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class RepliesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - RepliesResource(DriveService* service); - - /** - * Standard destructor. - */ - ~RepliesResource() {} - - - /** - * Creates a new RepliesResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] reply_id The ID of the reply. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id) const; - - /** - * Creates a new RepliesResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] reply_id The ID of the reply. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id) const; - - /** - * Creates a new RepliesResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const CommentReply& _content_) const; - - /** - * Creates a new RepliesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] file_id The ID of the file. - * - * @param[in] comment_id The ID of the comment. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - RepliesResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id) const; - - /** - * Creates a new RepliesResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] reply_id The ID of the reply. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id, - const CommentReply& _content_) const; - - /** - * Creates a new RepliesResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] comment_id The ID of the comment. - * @param[in] reply_id The ID of the reply. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RepliesResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& comment_id, - const StringPiece& reply_id, - const CommentReply& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(RepliesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class RevisionsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - RevisionsResource(DriveService* service); - - /** - * Standard destructor. - */ - ~RevisionsResource() {} - - - /** - * Creates a new RevisionsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] revision_id The ID of the revision. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RevisionsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id) const; - - /** - * Creates a new RevisionsResource_GetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @param[in] revision_id The ID of the revision. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RevisionsResource_GetMethod* NewGetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id) const; - - /** - * Creates a new RevisionsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID of the file. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RevisionsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id) const; - - /** - * Creates a new RevisionsResource_PatchMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] revision_id The ID for the revision. - * @param[in] _content_ The data object to patch. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RevisionsResource_PatchMethod* NewPatchMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id, - const Revision& _content_) const; - - /** - * Creates a new RevisionsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] file_id The ID for the file. - * @param[in] revision_id The ID for the revision. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - RevisionsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& file_id, - const StringPiece& revision_id, - const Revision& _content_) const; - - private: - DriveService* service_; - - DISALLOW_COPY_AND_ASSIGN(RevisionsResource); - }; - - - - /** - * Standard constructor. - * - * @param[in] transport The transport to use when creating methods to invoke - * on this service instance. + * The name of the API that this was generated from. */ - explicit DriveService(client::HttpTransport* transport); + static const StringPiece googleapis_API_NAME; /** - * Standard destructor. + * The version of the API that this interface was generated from. */ - virtual ~DriveService(); + static const StringPiece googleapis_API_VERSION; /** - * Gets the resource method factory. - * - * @return AboutResource for creating methods. + * The code generator used to generate this API. */ - const AboutResource& get_about() const { - return about_; - } + static const StringPiece googleapis_API_GENERATOR; /** - * Gets the resource method factory. + * Acts as message factory for accessing data. * - * @return AppsResource for creating methods. + * @ingroup ServiceClass */ - const AppsResource& get_apps() const { - return apps_; - } + class AboutResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit AboutResource(DriveService* service); + /** + * Standard destructor. + */ + ~AboutResource() {} - /** - * Gets the resource method factory. - * - * @return ChangesResource for creating methods. - */ - const ChangesResource& get_changes() const { - return changes_; - } + /** + * Creates a new AboutResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AboutResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_) const; - /** - * Gets the resource method factory. - * - * @return ChannelsResource for creating methods. - */ - const ChannelsResource& get_channels() const { - return channels_; - } + private: + DriveService* service_; + DISALLOW_COPY_AND_ASSIGN(AboutResource); + }; /** - * Gets the resource method factory. + * Acts as message factory for accessing data. * - * @return ChildrenResource for creating methods. + * @ingroup ServiceClass */ - const ChildrenResource& get_children() const { - return children_; - } + class AppsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit AppsResource(DriveService* service); + /** + * Standard destructor. + */ + ~AppsResource() {} - /** - * Gets the resource method factory. - * - * @return CommentsResource for creating methods. - */ - const CommentsResource& get_comments() const { - return comments_; - } + /** + * Creates a new AppsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] app_id The ID of the app. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AppsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& app_id) const; + + /** + * Creates a new AppsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + AppsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_) const; - /** - * Gets the resource method factory. - * - * @return FilesResource for creating methods. - */ - const FilesResource& get_files() const { - return files_; - } + private: + DriveService* service_; + DISALLOW_COPY_AND_ASSIGN(AppsResource); + }; /** - * Gets the resource method factory. + * Acts as message factory for accessing data. * - * @return ParentsResource for creating methods. + * @ingroup ServiceClass */ - const ParentsResource& get_parents() const { - return parents_; - } + class ChangesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ChangesResource(DriveService* service); + /** + * Standard destructor. + */ + ~ChangesResource() {} - /** - * Gets the resource method factory. - * - * @return PermissionsResource for creating methods. - */ - const PermissionsResource& get_permissions() const { - return permissions_; - } + /** + * Creates a new ChangesResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] change_id The ID of the change. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChangesResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& change_id) const; - /** - * Gets the resource method factory. - * - * @return PropertiesResource for creating methods. - */ - const PropertiesResource& get_properties() const { - return properties_; - } + /** + * Creates a new ChangesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChangesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_) const; + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * + * @see googleapis::googleapis::ServiceRequestPager + */ + ChangesResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_) const; - /** - * Gets the resource method factory. - * - * @return RealtimeResource for creating methods. - */ - const RealtimeResource& get_realtime() const { - return realtime_; - } + /** + * Creates a new ChangesResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChangesResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const Channel& _content_) const; + + private: + DriveService* service_; + DISALLOW_COPY_AND_ASSIGN(ChangesResource); + }; /** - * Gets the resource method factory. + * Acts as message factory for accessing data. * - * @return RepliesResource for creating methods. + * @ingroup ServiceClass */ - const RepliesResource& get_replies() const { - return replies_; - } + class ChannelsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ChannelsResource(DriveService* service); + + /** + * Standard destructor. + */ + ~ChannelsResource() {} - /** - * Gets the resource method factory. - * - * @return RevisionsResource for creating methods. - */ - const RevisionsResource& get_revisions() const { - return revisions_; - } + /** + * Creates a new ChannelsResource_StopMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to stop. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChannelsResource_StopMethod* NewStopMethod( + client::AuthorizationCredential* _credential_, + const Channel& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(ChannelsResource); + }; /** - * Declares the OAuth2.0 scopes used within Drive API + * Acts as message factory for accessing data. * - * These scopes shoudl be used when asking for credentials to invoke methods - * in the DriveService. + * @ingroup ServiceClass */ - class SCOPES { + class ChildrenResource { public: /** - * View and manage the files in your Google Drive. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - static const StringPiece DRIVE; + explicit ChildrenResource(DriveService* service); /** - * View and manage its own configuration data in your Google Drive. + * Standard destructor. */ - static const StringPiece DRIVE_APPDATA; + ~ChildrenResource() {} + /** - * View your Google Drive apps. + * Creates a new ChildrenResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] folder_id The ID of the folder. + * @param[in] child_id The ID of the child. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - static const StringPiece DRIVE_APPS_READONLY; + ChildrenResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const StringPiece& child_id) const; + + /** + * Creates a new ChildrenResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] folder_id The ID of the folder. + * @param[in] child_id The ID of the child. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChildrenResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const StringPiece& child_id) const; + + /** + * Creates a new ChildrenResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] folder_id The ID of the folder. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChildrenResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id, + const ChildReference& _content_) const; + + /** + * Creates a new ChildrenResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] folder_id The ID of the folder. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ChildrenResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] folder_id The ID of the folder. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + ChildrenResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& folder_id) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(ChildrenResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CommentsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit CommentsResource(DriveService* service); + + /** + * Standard destructor. + */ + ~CommentsResource() {} + + + /** + * Creates a new CommentsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id) const; + + /** + * Creates a new CommentsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id) const; + + /** + * Creates a new CommentsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Comment& _content_) const; + + /** + * Creates a new CommentsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + CommentsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new CommentsResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const Comment& _content_) const; + + /** + * Creates a new CommentsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CommentsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const Comment& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(CommentsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class FilesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit FilesResource(DriveService* service); + + /** + * Standard destructor. + */ + ~FilesResource() {} + + + /** + * Creates a new FilesResource_CopyMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to copy. + * @param[in] _content_ The data object to copy. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_CopyMethod* NewCopyMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File& _content_) const; + + /** + * Creates a new FilesResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to delete. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new FilesResource_EmptyTrashMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_EmptyTrashMethod* NewEmptyTrashMethod( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a new FilesResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file in question. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + + /** + * Creates a new FilesResource_InsertMethod instance. + * @deprecated + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a new FilesResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _metadata_ The metadata object to insert. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const File* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + /** + * Creates a new FilesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * + * @see googleapis::googleapis::ServiceRequestPager + */ + FilesResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_) const; + + /** + * Creates a new FilesResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to update. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File& _content_) const; + + /** + * Creates a new FilesResource_TouchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_TouchMethod* NewTouchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new FilesResource_TrashMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to trash. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_TrashMethod* NewTrashMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new FilesResource_UntrashMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to untrash. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_UntrashMethod* NewUntrashMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + + /** + * Creates a new FilesResource_UpdateMethod instance. + * @deprecated + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to update. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new FilesResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file to update. + * @param[in] _metadata_ The metadata object to update. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to update. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const File* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + /** + * Creates a new FilesResource_WatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file in question. + * @param[in] _content_ The data object to watch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + FilesResource_WatchMethod* NewWatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Channel& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(FilesResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ParentsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ParentsResource(DriveService* service); + + /** + * Standard destructor. + */ + ~ParentsResource() {} + + + /** + * Creates a new ParentsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] parent_id The ID of the parent. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ParentsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& parent_id) const; + + /** + * Creates a new ParentsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] parent_id The ID of the parent. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ParentsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& parent_id) const; + + /** + * Creates a new ParentsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ParentsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const ParentReference& _content_) const; + + /** + * Creates a new ParentsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ParentsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(ParentsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class PermissionsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit PermissionsResource(DriveService* service); + + /** + * Standard destructor. + */ + ~PermissionsResource() {} + + + /** + * Creates a new PermissionsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] permission_id The ID for the permission. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id) const; + + /** + * Creates a new PermissionsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] permission_id The ID for the permission. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id) const; + + /** + * Creates a new PermissionsResource_GetIdForEmailMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] email The email address for which to return a permission ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_GetIdForEmailMethod* NewGetIdForEmailMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& email) const; + + /** + * Creates a new PermissionsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Permission& _content_) const; + + /** + * Creates a new PermissionsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new PermissionsResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] permission_id The ID for the permission. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id, + const Permission& _content_) const; + + /** + * Creates a new PermissionsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] permission_id The ID for the permission. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PermissionsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& permission_id, + const Permission& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(PermissionsResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class PropertiesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit PropertiesResource(DriveService* service); + + /** + * Standard destructor. + */ + ~PropertiesResource() {} + + + /** + * Creates a new PropertiesResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] property_key The key of the property. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key) const; + + /** + * Creates a new PropertiesResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] property_key The key of the property. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key) const; + + /** + * Creates a new PropertiesResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const Property& _content_) const; + + /** + * Creates a new PropertiesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new PropertiesResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] property_key The key of the property. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key, + const Property& _content_) const; + + /** + * Creates a new PropertiesResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] property_key The key of the property. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PropertiesResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& property_key, + const Property& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(PropertiesResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class RealtimeResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit RealtimeResource(DriveService* service); + + /** + * Standard destructor. + */ + ~RealtimeResource() {} + + + /** + * Creates a new RealtimeResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file that the Realtime API data model is + * associated with. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RealtimeResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new RealtimeResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file that the Realtime API data model is + * associated with. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to update. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RealtimeResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(RealtimeResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class RepliesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit RepliesResource(DriveService* service); + + /** + * Standard destructor. + */ + ~RepliesResource() {} + + + /** + * Creates a new RepliesResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] reply_id The ID of the reply. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id) const; + + /** + * Creates a new RepliesResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] reply_id The ID of the reply. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id) const; + + /** + * Creates a new RepliesResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const CommentReply& _content_) const; + + /** + * Creates a new RepliesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * + * @param[in] comment_id The ID of the comment. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + RepliesResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id) const; + + /** + * Creates a new RepliesResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] reply_id The ID of the reply. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id, + const CommentReply& _content_) const; + + /** + * Creates a new RepliesResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] comment_id The ID of the comment. + * @param[in] reply_id The ID of the reply. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RepliesResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& comment_id, + const StringPiece& reply_id, + const CommentReply& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(RepliesResource); + }; + + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class RevisionsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit RevisionsResource(DriveService* service); + + /** + * Standard destructor. + */ + ~RevisionsResource() {} + + + /** + * Creates a new RevisionsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] revision_id The ID of the revision. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RevisionsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id) const; + + /** + * Creates a new RevisionsResource_GetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @param[in] revision_id The ID of the revision. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RevisionsResource_GetMethod* NewGetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id) const; + + /** + * Creates a new RevisionsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID of the file. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RevisionsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id) const; + + /** + * Creates a new RevisionsResource_PatchMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] revision_id The ID for the revision. + * @param[in] _content_ The data object to patch. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RevisionsResource_PatchMethod* NewPatchMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id, + const Revision& _content_) const; + + /** + * Creates a new RevisionsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] file_id The ID for the file. + * @param[in] revision_id The ID for the revision. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + RevisionsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& file_id, + const StringPiece& revision_id, + const Revision& _content_) const; + + private: + DriveService* service_; + + DISALLOW_COPY_AND_ASSIGN(RevisionsResource); + }; + + + + /** + * Standard constructor. + * + * @param[in] transport The transport to use when creating methods to invoke + * on this service instance. + */ + explicit DriveService(client::HttpTransport* transport); + + /** + * Standard destructor. + */ + virtual ~DriveService(); + + /** + * Gets the resource method factory. + * + * @return AboutResource for creating methods. + */ + const AboutResource& get_about() const { + return about_; + } + + + /** + * Gets the resource method factory. + * + * @return AppsResource for creating methods. + */ + const AppsResource& get_apps() const { + return apps_; + } + + + /** + * Gets the resource method factory. + * + * @return ChangesResource for creating methods. + */ + const ChangesResource& get_changes() const { + return changes_; + } + + + /** + * Gets the resource method factory. + * + * @return ChannelsResource for creating methods. + */ + const ChannelsResource& get_channels() const { + return channels_; + } + + + /** + * Gets the resource method factory. + * + * @return ChildrenResource for creating methods. + */ + const ChildrenResource& get_children() const { + return children_; + } + + + /** + * Gets the resource method factory. + * + * @return CommentsResource for creating methods. + */ + const CommentsResource& get_comments() const { + return comments_; + } + + + /** + * Gets the resource method factory. + * + * @return FilesResource for creating methods. + */ + const FilesResource& get_files() const { + return files_; + } + + + /** + * Gets the resource method factory. + * + * @return ParentsResource for creating methods. + */ + const ParentsResource& get_parents() const { + return parents_; + } + + + /** + * Gets the resource method factory. + * + * @return PermissionsResource for creating methods. + */ + const PermissionsResource& get_permissions() const { + return permissions_; + } + + + /** + * Gets the resource method factory. + * + * @return PropertiesResource for creating methods. + */ + const PropertiesResource& get_properties() const { + return properties_; + } + + + /** + * Gets the resource method factory. + * + * @return RealtimeResource for creating methods. + */ + const RealtimeResource& get_realtime() const { + return realtime_; + } + + + /** + * Gets the resource method factory. + * + * @return RepliesResource for creating methods. + */ + const RepliesResource& get_replies() const { + return replies_; + } + + + /** + * Gets the resource method factory. + * + * @return RevisionsResource for creating methods. + */ + const RevisionsResource& get_revisions() const { + return revisions_; + } + + /** + * Declares the OAuth2.0 scopes used within Drive API + * + * These scopes shoudl be used when asking for credentials to invoke methods + * in the DriveService. + */ + class SCOPES { + public: + /** + * View and manage the files in your Google Drive. + */ + static const StringPiece DRIVE; + + /** + * View and manage its own configuration data in your Google Drive. + */ + static const StringPiece DRIVE_APPDATA; + + /** + * View your Google Drive apps. + */ + static const StringPiece DRIVE_APPS_READONLY; /** * View and manage Google Drive files that you have opened or created with @@ -10359,6 +9777,11 @@ class DriveService : public client::ClientService { */ static const StringPiece DRIVE_FILE; + /** + * View and manage metadata of files in your Google Drive. + */ + static const StringPiece DRIVE_METADATA; + /** * View metadata for files in your Google Drive. */ @@ -10375,7 +9798,7 @@ class DriveService : public client::ClientService { static const StringPiece DRIVE_SCRIPTS; private: - SCOPES(); // Never instantiated. + SCOPES(); // Never instantiated. ~SCOPES(); // Never instantiated. }; diff --git a/service_apis/drive/google/drive_api/file.cc b/service_apis/drive/google/drive_api/file.cc index 5cb0b3b..a64b7d5 100644 --- a/service_apis/drive/google/drive_api/file.cc +++ b/service_apis/drive/google/drive_api/file.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/file.h b/service_apis/drive/google/drive_api/file.h index 8cce652..cf23e36 100644 --- a/service_apis/drive/google/drive_api/file.h +++ b/service_apis/drive/google/drive_api/file.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_FILE_H_ #define GOOGLE_DRIVE_API_FILE_H_ @@ -56,7 +56,6 @@ using namespace googleapis; */ class File : public client::JsonCppData { public: - /** * Metadata about image media. This will only be present for image types, and * its contents will depend on what can be parsed from the image content. @@ -65,7 +64,6 @@ class File : public client::JsonCppData { */ class FileImageMediaMetadata : public client::JsonCppData { public: - /** * Geographic location information stored in the image. * @@ -73,7 +71,6 @@ class File : public client::JsonCppData { */ class FileImageMediaMetadataLocation : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -1047,7 +1044,6 @@ class File : public client::JsonCppData { */ class FileIndexableText : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -1130,7 +1126,6 @@ class File : public client::JsonCppData { */ class FileLabels : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -1366,7 +1361,6 @@ class File : public client::JsonCppData { */ class FileThumbnail : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -1487,7 +1481,6 @@ class File : public client::JsonCppData { */ class FileVideoMediaMetadata : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -2522,10 +2515,7 @@ class File : public client::JsonCppData { * Get a reference to the value of the 'lastModifyingUser' * attribute. */ - const User get_last_modifying_user() const { - const Json::Value& storage = Storage("lastModifyingUser"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_last_modifying_user() const; /** * Gets a reference to a mutable value of the 'lastModifyingUser' @@ -2535,10 +2525,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_lastModifyingUser() { - Json::Value* storage = MutableStorage("lastModifyingUser"); - return client::JsonValueToMutableCppValueHelper(storage); - } + User mutable_lastModifyingUser(); /** * Determine if the 'lastModifyingUserName' attribute was set. @@ -2943,10 +2930,7 @@ class File : public client::JsonCppData { /** * Get a reference to the value of the 'owners' attribute. */ - const client::JsonCppArray get_owners() const { - const Json::Value& storage = Storage("owners"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_owners() const; /** * Gets a reference to a mutable value of the 'owners' property. @@ -2955,10 +2939,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_owners() { - Json::Value* storage = MutableStorage("owners"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_owners(); /** * Determine if the 'parents' attribute was set. @@ -2980,10 +2961,7 @@ class File : public client::JsonCppData { /** * Get a reference to the value of the 'parents' attribute. */ - const client::JsonCppArray get_parents() const { - const Json::Value& storage = Storage("parents"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_parents() const; /** * Gets a reference to a mutable value of the 'parents' property. @@ -2995,10 +2973,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_parents() { - Json::Value* storage = MutableStorage("parents"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_parents(); /** * Determine if the 'permissions' attribute was set. @@ -3020,10 +2995,7 @@ class File : public client::JsonCppData { /** * Get a reference to the value of the 'permissions' attribute. */ - const client::JsonCppArray get_permissions() const { - const Json::Value& storage = Storage("permissions"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_permissions() const; /** * Gets a reference to a mutable value of the 'permissions' @@ -3033,10 +3005,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_permissions() { - Json::Value* storage = MutableStorage("permissions"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_permissions(); /** * Determine if the 'properties' attribute was set. @@ -3058,10 +3027,7 @@ class File : public client::JsonCppData { /** * Get a reference to the value of the 'properties' attribute. */ - const client::JsonCppArray get_properties() const { - const Json::Value& storage = Storage("properties"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_properties() const; /** * Gets a reference to a mutable value of the 'properties' @@ -3071,10 +3037,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_properties() { - Json::Value* storage = MutableStorage("properties"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_properties(); /** * Determine if the 'quotaBytesUsed' attribute was set. @@ -3245,10 +3208,7 @@ class File : public client::JsonCppData { /** * Get a reference to the value of the 'sharingUser' attribute. */ - const User get_sharing_user() const { - const Json::Value& storage = Storage("sharingUser"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_sharing_user() const; /** * Gets a reference to a mutable value of the 'sharingUser' @@ -3258,9 +3218,44 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_sharingUser() { - Json::Value* storage = MutableStorage("sharingUser"); - return client::JsonValueToMutableCppValueHelper(storage); + User mutable_sharingUser(); + + /** + * Determine if the 'spaces' attribute was set. + * + * @return true if the 'spaces' attribute was set. + */ + bool has_spaces() const { + return Storage().isMember("spaces"); + } + + /** + * Clears the 'spaces' attribute. + */ + void clear_spaces() { + MutableStorage()->removeMember("spaces"); + } + + + /** + * Get a reference to the value of the 'spaces' attribute. + */ + const client::JsonCppArray get_spaces() const { + const Json::Value& storage = Storage("spaces"); + return client::JsonValueToCppValueHelper >(storage); + } + + /** + * Gets a reference to a mutable value of the 'spaces' property. + * + * The list of spaces which contain the file. Supported values are 'drive' and + * 'appDataFolder'. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_spaces() { + Json::Value* storage = MutableStorage("spaces"); + return client::JsonValueToMutableCppValueHelper >(storage); } /** @@ -3398,10 +3393,7 @@ class File : public client::JsonCppData { * Get a reference to the value of the 'userPermission' * attribute. */ - const Permission get_user_permission() const { - const Json::Value& storage = Storage("userPermission"); - return client::JsonValueToCppValueHelper(storage); - } + const Permission get_user_permission() const; /** * Gets a reference to a mutable value of the 'userPermission' @@ -3411,10 +3403,7 @@ class File : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Permission mutable_userPermission() { - Json::Value* storage = MutableStorage("userPermission"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Permission mutable_userPermission(); /** * Determine if the 'version' attribute was set. diff --git a/service_apis/drive/google/drive_api/file_list.cc b/service_apis/drive/google/drive_api/file_list.cc index 28f2acd..5919583 100644 --- a/service_apis/drive/google/drive_api/file_list.cc +++ b/service_apis/drive/google/drive_api/file_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/file_list.h b/service_apis/drive/google/drive_api/file_list.h index 9a1b603..a44c8be 100644 --- a/service_apis/drive/google/drive_api/file_list.h +++ b/service_apis/drive/google/drive_api/file_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_FILE_LIST_H_ #define GOOGLE_DRIVE_API_FILE_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class FileList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class FileList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class FileList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/parent_list.cc b/service_apis/drive/google/drive_api/parent_list.cc index 071a633..6554302 100644 --- a/service_apis/drive/google/drive_api/parent_list.cc +++ b/service_apis/drive/google/drive_api/parent_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/parent_list.h b/service_apis/drive/google/drive_api/parent_list.h index 51bdf25..8526c70 100644 --- a/service_apis/drive/google/drive_api/parent_list.h +++ b/service_apis/drive/google/drive_api/parent_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PARENT_LIST_H_ #define GOOGLE_DRIVE_API_PARENT_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ParentList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class ParentList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class ParentList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/parent_reference.cc b/service_apis/drive/google/drive_api/parent_reference.cc index d9da321..566cd44 100644 --- a/service_apis/drive/google/drive_api/parent_reference.cc +++ b/service_apis/drive/google/drive_api/parent_reference.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/parent_reference.h b/service_apis/drive/google/drive_api/parent_reference.h index b6c032d..b19a049 100644 --- a/service_apis/drive/google/drive_api/parent_reference.h +++ b/service_apis/drive/google/drive_api/parent_reference.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PARENT_REFERENCE_H_ #define GOOGLE_DRIVE_API_PARENT_REFERENCE_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ParentReference : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/permission.cc b/service_apis/drive/google/drive_api/permission.cc index 16a2da5..d0545a0 100644 --- a/service_apis/drive/google/drive_api/permission.cc +++ b/service_apis/drive/google/drive_api/permission.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/permission.h b/service_apis/drive/google/drive_api/permission.h index 28f73d3..0dfbf4c 100644 --- a/service_apis/drive/google/drive_api/permission.h +++ b/service_apis/drive/google/drive_api/permission.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PERMISSION_H_ #define GOOGLE_DRIVE_API_PERMISSION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class Permission : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/permission_id.cc b/service_apis/drive/google/drive_api/permission_id.cc index 7c11e5c..25fa9a3 100644 --- a/service_apis/drive/google/drive_api/permission_id.cc +++ b/service_apis/drive/google/drive_api/permission_id.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/permission_id.h b/service_apis/drive/google/drive_api/permission_id.h index ba6d058..3353c77 100644 --- a/service_apis/drive/google/drive_api/permission_id.h +++ b/service_apis/drive/google/drive_api/permission_id.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PERMISSION_ID_H_ #define GOOGLE_DRIVE_API_PERMISSION_ID_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PermissionId : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/permission_list.cc b/service_apis/drive/google/drive_api/permission_list.cc index 9e9a92b..0c16b06 100644 --- a/service_apis/drive/google/drive_api/permission_list.cc +++ b/service_apis/drive/google/drive_api/permission_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/permission_list.h b/service_apis/drive/google/drive_api/permission_list.h index 751e4f4..2d8fb1b 100644 --- a/service_apis/drive/google/drive_api/permission_list.h +++ b/service_apis/drive/google/drive_api/permission_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PERMISSION_LIST_H_ #define GOOGLE_DRIVE_API_PERMISSION_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class PermissionList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class PermissionList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class PermissionList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/property.cc b/service_apis/drive/google/drive_api/property.cc index b935b62..7d839a3 100644 --- a/service_apis/drive/google/drive_api/property.cc +++ b/service_apis/drive/google/drive_api/property.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/property.h b/service_apis/drive/google/drive_api/property.h index 84439bb..1cad61e 100644 --- a/service_apis/drive/google/drive_api/property.h +++ b/service_apis/drive/google/drive_api/property.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PROPERTY_H_ #define GOOGLE_DRIVE_API_PROPERTY_H_ @@ -56,7 +56,6 @@ using namespace googleapis; */ class Property : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/drive/google/drive_api/property_list.cc b/service_apis/drive/google/drive_api/property_list.cc index a0cac10..e58fb8d 100644 --- a/service_apis/drive/google/drive_api/property_list.cc +++ b/service_apis/drive/google/drive_api/property_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/property_list.h b/service_apis/drive/google/drive_api/property_list.h index bbc2f03..6d037ac 100644 --- a/service_apis/drive/google/drive_api/property_list.h +++ b/service_apis/drive/google/drive_api/property_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_PROPERTY_LIST_H_ #define GOOGLE_DRIVE_API_PROPERTY_LIST_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class PropertyList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -145,10 +144,7 @@ class PropertyList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -157,10 +153,7 @@ class PropertyList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/revision.cc b/service_apis/drive/google/drive_api/revision.cc index b587bf8..4c31ac7 100644 --- a/service_apis/drive/google/drive_api/revision.cc +++ b/service_apis/drive/google/drive_api/revision.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/revision.h b/service_apis/drive/google/drive_api/revision.h index eafa308..ce5ee56 100644 --- a/service_apis/drive/google/drive_api/revision.h +++ b/service_apis/drive/google/drive_api/revision.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_REVISION_H_ #define GOOGLE_DRIVE_API_REVISION_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class Revision : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -335,10 +334,7 @@ class Revision : public client::JsonCppData { * Get a reference to the value of the 'lastModifyingUser' * attribute. */ - const User get_last_modifying_user() const { - const Json::Value& storage = Storage("lastModifyingUser"); - return client::JsonValueToCppValueHelper(storage); - } + const User get_last_modifying_user() const; /** * Gets a reference to a mutable value of the 'lastModifyingUser' @@ -348,10 +344,7 @@ class Revision : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - User mutable_lastModifyingUser() { - Json::Value* storage = MutableStorage("lastModifyingUser"); - return client::JsonValueToMutableCppValueHelper(storage); - } + User mutable_lastModifyingUser(); /** * Determine if the 'lastModifyingUserName' attribute was set. diff --git a/service_apis/drive/google/drive_api/revision_list.cc b/service_apis/drive/google/drive_api/revision_list.cc index 3bec9c0..e10f776 100644 --- a/service_apis/drive/google/drive_api/revision_list.cc +++ b/service_apis/drive/google/drive_api/revision_list.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/revision_list.h b/service_apis/drive/google/drive_api/revision_list.h index a3eea2f..e0ccb1d 100644 --- a/service_apis/drive/google/drive_api/revision_list.h +++ b/service_apis/drive/google/drive_api/revision_list.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_REVISION_LIST_H_ #define GOOGLE_DRIVE_API_REVISION_LIST_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class RevisionList : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class RevisionList : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -156,10 +152,7 @@ class RevisionList : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/drive/google/drive_api/user.cc b/service_apis/drive/google/drive_api/user.cc index eaadbe8..2714c43 100644 --- a/service_apis/drive/google/drive_api/user.cc +++ b/service_apis/drive/google/drive_api/user.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/drive/google/drive_api/user.h b/service_apis/drive/google/drive_api/user.h index 2151d3a..633bc7e 100644 --- a/service_apis/drive/google/drive_api/user.h +++ b/service_apis/drive/google/drive_api/user.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-24, 16:34:37 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-04, 16:55:58 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // Drive API (drive/v2) // Generated from: // Version: v2 -// Revision: 163 +// Revision: 172 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_DRIVE_API_USER_H_ #define GOOGLE_DRIVE_API_USER_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class User : public client::JsonCppData { public: - /** * The user's profile picture. * @@ -57,7 +56,6 @@ class User : public client::JsonCppData { */ class UserPicture : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/descriptor.json b/service_apis/youtube/descriptor.json index 83fc0a0..ff432be 100644 --- a/service_apis/youtube/descriptor.json +++ b/service_apis/youtube/descriptor.json @@ -17,19 +17,19 @@ "canonicalName": "YouTube", "files": [ { - "downloadUrl": "/downloads/youtube/v3/130/cpp/0.1.2/google-youtube-v3-rev130-cpp-0.1.2-doc.zip", - "path": "google-youtube-v3-rev130-cpp-0.1.2-doc.zip", + "downloadUrl": "/downloads/youtube/v3/139/cpp/0.1.3/google-youtube-v3-rev139-cpp-0.1.3-doc.zip", + "path": "google-youtube-v3-rev139-cpp-0.1.3-doc.zip", "type": "documentation", - "timestamp": "2015-03-12 00:35" + "timestamp": "2015-06-02 07:00" }, { - "downloadUrl": "/downloads/youtube/v3/130/cpp/0.1.2/google-youtube-v3-rev130-cpp-0.1.2-src.zip", + "downloadUrl": "/downloads/youtube/v3/139/cpp/0.1.3/google-youtube-v3-rev139-cpp-0.1.3-src.zip", "path": "", "type": "source", - "timestamp": "2015-03-12 00:35" + "timestamp": "2015-06-02 07:00" } ], - "revision": 130, + "revision": 139, "language": "cpp", - "language_version": "0.1.2" + "language_version": "0.1.3" } \ No newline at end of file diff --git a/service_apis/youtube/google-youtube-v3-rev130-cpp-0.1.2-doc.zip b/service_apis/youtube/google-youtube-v3-rev139-cpp-0.1.3-doc.zip similarity index 78% rename from service_apis/youtube/google-youtube-v3-rev130-cpp-0.1.2-doc.zip rename to service_apis/youtube/google-youtube-v3-rev139-cpp-0.1.3-doc.zip index 6b80bd0c5156fd4171fbd80e2f19828696b7b6ad..7b471d3cb7d3f93021579ab6cf66fbaff04e1018 100644 GIT binary patch delta 1313363 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

    =3> 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 z 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 z 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�NC?!DQ|aW2Lz4ON7!=eEARj_;Ae2*^+Q#% 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

    k{s#VSG4Fkkl1)y-=R5h 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

    A|0V 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

    y_}l(ZQsv__;!ox-?kt)Bl*_J*@ia84&ro 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�BlU>Irm@)x114`1un^yfF+Sm(}bO8)22iyP2og9 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

    g@b`Iykl3ZDVpPoZp1VUCLTD?0 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 OWp9dJx60QF+5Z50>*yK) delta 693952 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�=XFIB3A$&~$RfWU6d5pQm3k6k!!Nuc9u0gSDq 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 z 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�>nj$kFv;~UMFh|NQKDEE0i`64 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 z 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 z zP1rWBCg$DT`LiMtzN?5sHV=DhWDT%X2P4v_SpvN!fo`^0%soP#-r&MGwI#z@zei=U zUIaXUa(UqUy%YXTiJTh7iZHj84L`Guu7Rw}`W|9^b~rJtbU9*Hw?IXjur3RRq!nmL zniY|9UPh$;p{aHE8r*e z%62Tz0(qTXBkAJ4o<3=#py!%#xl^I2w(Bzva#c|HFV^R0Oam7t>>^Il3y7Fsi0e~5 z*fBgH<`+`WMGLs4eYY0ft8>UWOZ>bBN2II4PHcq5&tgOR>pMK8@5CN8}_{Q4tR3 z;IHng_Llry?=_+;_lD@$&?^C*qE07L=Wmd~W6`j^MMd26m|5A}FU&jH%Xyu6v#@0Z zozbq%6S1O6@YT(IH3HqP`-(^S=H;6z3{z(L5{iL)}LR{F@M2MOtb}*5H zsM!{R=5dPMCuyC|MTyPZLkaReO9{alnqjJsFXZ-U;tXNw!v95JlrlQG1YsVQL+Bk* zi=#U$VMNl$h<;R()vyomqIdxEZo7^Potm(fBp{&m;blRoz05t1^gIjpu^|%#t+7S0 z3-BH^6$m>gKprPO2OEoDg#~RMU(hxBE)aY}(C`0u-@x@RK9Jdm0J!yIFOQhD3L$-k z{4-l6?J1c0cpoGk3 zTk}RjKGTyPSa$cmNP}ZmovF3lJX(AKtMPL(^)l2_Dk`=#c|JC{-g5xkt!%x*_flKH zLrqNtr#C>~NhajSA~mg{$L~t%j%!pLmD9Nhu9Ki2AXrwM2o@tq5Y~txDv`DT)79%ecwrRMWD$W9MNj_A6 zNf3qIiu2iO0WN)oDGDKJR<>3c>M_}JKSp5Ep?@r?t$5|NB<{^cLdQT1))SWpi+lcd zA$>z6Uc_iSl+aLO*OmK;7RcC^_)ceRYloE)n6fQAyHP$mvDwR6ZIq&S%I3S}$a3C` zFF|cF8!zzY zdZ(Su2TV3Nfo9JxaWIrat>acqz`>>bfDvQn6>9en?!WH_&FpLSZP)Jy{OljY-(SRx zn1AHw&9p?rPm-gk)rXy=OC@l5PLt0`FIxMf9q$IOla=Q6b=i^U^h;X9v}QhF;Szr@ z91s<7L9$kDTH=xBZ3gLs<~WhV_ZW9g%c>qfe4EK=((;!K+=8f|Gksb{g8BmLCoUZ3 zQ>#xSIigreY1kiiWpONXC>a9Y_h4U02@PU2m#OsiDp0QKHpx0; z22#77Vq}*Ga%1rY$O?Wsp#^q-{6VJqE0%;598ezKxG>>t-$1#*h!wSVU;WLev`9f9 zD{(BT!hqjM&>_^`?Qe*FwrQ$Inlh^aG@qljU~qfabq;wAF=rV3qh?=yaINTj1e81s zA30G`LQO>G8oTK>>8&!P(A&*}Xni8+nqGr<-?g?@%}|9vH0~%<1x#>0Lz`kmdHb~_ z3Ab9!>hg*dbz^VK_f}+StLVkgyRI*jqTF_NOLC>#QGqt*Bf@Q^ilo7`BtJx(&Qi~= zOH5-gqAmpVIiuUa|EUI&?h(WzYSxOUSK~rA&G!qz|nnRI80RzTjXOZ4Hq!uvksefftEQ>vY&70j#BpR9Gc*5bnTKnUAd≷8iz;3k2r^eu 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

    XU9_yTa{rHEd zY^B-ZcLVtnl=>OX;hP|=uZ7~g*4^Rk_si&C@f zqd$Pp8Rw)aqQh2t{H!U6uNyD#N8vN!IiX>JXXDwq` zoCDz9vISY(@Z(1g<4REw%HQrR;Pz-MZ2YdGx}Ivq)SLt0MBX!3K9`_DCuuV#Wk236 zG<(*LK)Uc;jj!-94daDV8X8HR91R<=y zgN5w#bh8XSP|lS5r~?vz)o$R;#d|0}IxQOfYv1x3#OHX+ z$VF53dlO0JH99-zG4{n85!Wb;M}o6;06drq)C+NgPT0NK8Fnt0@(=RGvi%LU!LcAb zGk*(@Nz|*~oIQ?MSw{0%72D1qgRj!t)n^{i@k19011B;vu2HrN9m$?p`r2q7i* z;JO;YkD{{7*7TEMCvx>1ff}Jw=d8UpzLU-uJ}NMxT=ilWU?nNk{zE(}*q_G37Gf#culMEO5cYyWAsFrO ztpi(i(e@+VxAR~-k0Xi{#YQGSfvO04Fs{E*9*+H#C241k9MVOgs{C6LsH*vv4BTyr z6Edk!%U4&~1kNrklgs$ak43YI{1a4F7|PUD(cplTp>$a)rbhNM(-mKY?F$=eS!Fjse5Yz?7{-PD?xP!(5=@%<>dfMjR2QE<;45*cvSHI2)~PG^h+q+1-8L*wt@5pl6kd%)!X*cwrsG`4t^92uFf!+R1R@w8Zk54>ju@eX*j@T>SYhGK)7 zW(f>?z8~B~XMiqn!l8cB&}X7qJ@Z<$bz0x)vu6)3g8ZBIwr<*grmK^ps7G+Wf1RG+kjvBfXhNPn@ybybPsY-_5ko99w>XGPv;r-q%xt3RC^xjmFxuUWmw@rKyp zU$wkSWyUmQGI}=}Mg*Fbef|)?^0Ffcc~f%IZFa*OjUT_gOzz0FI+irhPV3 zet7KQ_7bxoV3ES!h;_~p`mzU?-&ssJcm?6>cPaHvj+#KTc3T_oQoL? zsH(i$vX;q#!Gk8=dk|Xb;u2a(Ws9RbQCa1Y=&GmtG|ymEo3=>BJ6r>Ct*Tu8E%%|? z@*_j&`ifEeMXgA_r`sgvMMWDY7MLXEY3(We4F4vDpWM!cokvpScBF4c z#jwy$@&?_w?zayY&vJ2DJd0*_num#;fGiPND2%Gtx~8&b)Z@j|Pf+1o>La{xQ4iKv>hxg@o9jcVcZVGOyH63_ zFby1)tt$O7s{H863938&eY*7AS265eUpcXW?S~kqclQ$~P4L=*hi>d}aS?wVU0huF z`p!1ivC0-wK9tenszDxAkxhrZ=|g3{hNe>R#aK4E`G4Rrs_9n0neYB7mc>bG{Cnju z2?*A58`D4twfkPIAeuGnFOaI&=PI%t{=%1^y&vn$KHwNWq$y>4K8`WD35OU^$ zt)j3MKlO#kZa8yS+Tup#UeK9CA7w)G;EndFuS7N_$V^3Xn} zh7}qgkI+iPAB+$Xpq-zTtc-)(mP7nV_ujnRy4a&HvRyV?A#>uSzUbWycK8}3X0%!W zU$t%~!j6tShcpapXCjLe#>8z{(_RP~qQPysr{^vNPVIlCKdBQf&B^w1ik=p3{0KqI zpX!YiHS^H-Mj(q;LhLMqtbTM&dT~)YVxj-O8^Pj?h`VS9K4u*2#`9+fB1@>eJEoyP zO&eZy^mJkQrUsBEvh8;rEEUZSWc^$f%uam&GOlOv%M@-DGn{2QKBSulH$U~lKyXTO zpE^Wq;1HH7A>O%dLvIXo1Nfa<%iwSd&NKum-LaPULwDB3Xg~tPJVSAtQiW((8d(os zjz>HcJ@ON5yB4IRKq$~%$*01EA;~=WH!s{mtSx>!skC1Y=8M9Ql(9X`N2n~NC01*PK92-&64{duOZG2Vk^wruza2X*_xN(J%r~Q zk?DY}CZxv`PFFG@sqXPW*4LHl)%zRa)QhKDG`P*@K7I#au}}F>yob{DBbVF4@eoOs z)%D|YsH|irOkwNC-B&ukc?v`kMALfiuI>)>x!$FxbuSE7z;031>2gE zcf7#~-x+78YfD~*!5=MKd1ryrpz>~bEhU6Ld^8rxFJ>DQ@xK#JZ^XsEfY}gf%?ehO zjv&p+ifwXFIPWRO|NbxIkW>VuMkY|+Wc~R0P|Dkv(vh3dt09Es2>mE^%jOYIkiF>S zZ{voP_R&DCgw$xT#=lLGR64KwC_*v>1wjgi)%}1EtQ^QG;7Uk!`828FhfP%dX@#cP zS_0dX<%maH`c)qGS%BmQa+4(EpkuN0C^9;2xC8fUOd{N@L>?+RTJ+kM!S>};_9~VW z#hgSW3;Q~1I}iwd8?^dHsvtsKzc04rwp#$Nzw8e;lc!TOxFVm4MrD!}9cF2h2DJ4l9Tru>f) z?z@P&!*$?~K_jVX)Q)u8<1xN5I!-l1j!_{*K|aY9HHZ-U;_3m)Jj%aN!kftSbYY;t zy0s2jy6jkQW^W;;=(-SUbwN(c)l-$+X(AUI-9I}$aMQuTW~xu=pQ=o4ZP*A$OEuTu z$1Tf=dHEOcQu}PcGBI3=oTh$_gY4j!stG$~VTmNp$D<*n{bsu7kD>UTILfCpuPU=*uL>{5II zGO$Fm2Z;^0Uf)e+%X=wj57j<1ForI53RX5gzmcP1%SG0Nn34-{Lz5lzYNu)-3`e#E zI~%g@0f^kC&h}48ewC_I+VWUb>`Dcfkp8IX`;$-vebK8AeAXbGg0DuFa6?Br_X!S9q(s0G78NX$yjCTXUI?Z8QNfGkG2*QgE!lUu4S6qVKafgy zUWd3}_??PwA^Xawo-k|+x(d?#M@0o$gRjbLR31%_4pwLze|`a$9hJuf&sLBozw@gF zNU21%UB=rnB*3*N{(+~7=g$(ehw!*jRn?l{6*3DXvwp3pgXx#9H1vCuhVBo((wT3b zqXGTT9}9A`INVamQ2O!-JH$z&UU2Qa@@{#Y zF;7@(hU)}(E6VbzXlL41s$G9Ol;1*v;!uU9ZS?L_a=SHEz8!m&*QHE=p<(Q9CnGCr zQEg(AFgqjbc#oq8A1xk?OfEM-ZpW?35UTA&T3VTQUv7w0R(w*sR|ARZ{E%O!I}0sT zp$5UIPaJ~pkU|S79M2?48f4HK26=>NtoqA&VS;sq@FhM;Pqs@f)inFJ!2`+KZJ-zN z&`EzGwKy zJ9h2WB$OWC7!^Q;rxy=z1RXz^DK|a23)y~s%AOfdbWliY1RvH#&WraK@J3QC_1sMb z*J~llJo*77lD!`Ulj=sc8%=7N=S!*Gw=Y-b&i1AT=Rnc6LlF2)+8;>ygT}Wh>C>b+ z{{=sEB~?msEG2zExHEEeg(nHV7w6PlZXGDq%H#MotciBY3Kds09(G8>F3UHx%J<(| zx_zXJi};HaH?+Mc{8(gF{f70(N~S*P$Gob7;%od)4x8l{;#YSJU*+*H`o2vVRw&%_QGk7Q#ra?)`uR zW0%R`t0!Clj}B10@<$CkgRPtVz#G4KD{awVOCd9V{>*hM^Kauv$EMm$yx>C%yN9$W z&vl?(T@XAZYeeD9hK~$B?ep<@?$RgODTb#WP|zh_>^`AZXST6Uyx!PPL>! zp8O?RMTXEVd3N=u^V10AkZLicN^>WX%D_D;qW%y{W6-hmjS=qLvcR)#p{!@8%Gc9|birjW>Z1fS?vcg5`qy2JfX)rr8%I{HS z1(GIPH5TL@5pZ}>OD*VKmfMPMyl$KYmaERv7pQiSzN3<1?m^!}Dn+X+`ZSDGdnzEk z9ASW2LGXJ6DA96FFAHat4mww5JBnOsi{_OoEe;h(@Nq<6>eZC4c4@1kH&)uZ5i(7~ zeBLt|;?un^LDIXm)+}!hE;dJyvX|u@+|fTjdsc>vi}(w`4yNe(F#%QTbM6C>0Q`x? z&81HMS{BysKOk3;H>}UW7A>SbCM|2x;;(rfQ-@9umx91D+o zt;o)$+k8*-Qzt6`GOFJ~tlBbN!$PF+v{FxR8H5UJEgf$mQ4o4q_1`+R$WZLD7)Jai;uOhNNTH zazv$mN{&W(2nC;t5p}vUQ=Uq~tCmm5)`E1342@L#oWY%IfJb<0HCwTVRQvLVDwDo6 zS6&4oRbxXzD5V@9=u0cgOpOvXHU^?zj*~(2HZq{q-gHZc2y53iUN{x&i~rhL@U_la zmP>V%REv2Q{gJabPKHzrLR?3mOkAXK94z<>s`S0$CZ^GYZhdhETf6U@_mytd!r%>b ze$E|bgj~Gm^6E{^+3yXI#1`dZi$Yc7RPEe-?}L|DCcC(-Oy=uaHesEp@S~GR@EL3Mu99{y z9f!j|Ii2}P)$_D$C5Y30K7p6vS$%kumW6||ta1;kvUU97NhbAuR?9AQpv(y#A6HdJ zd+c(Rm5eQBhW%U)nQysNS*2ymarfT8E|;g?9Sxz-x&%81!_y@=wMV6bW;bxS<(ACaQfL=85PHvZ&1GJ@awuzE zRk5hcM#d+6sAD4ph{GT0SVyRpq2r+H(w9@DeaCd{KnTY7_zQpO&g+U!qw=jcqNKsM zbgTVhtC9Jr^0S%Yfi0H&hzV{XejkdsusBJ==1@gv%kt5aF^8;SO+ z>QB<(Xs4=q!>%qt2Lh<*iQTVA8}I7a;6NXtD9QDBxv;PwbHN|ah!nZxtB(%tT%{@6 z3k()@eo9@X{#U1$e5lCs6xgfHKZQv}VS1L-BFLoIWScA|twoou&oX3~vP>3ZR+dF? z$u($mkU{s=z%l_UGUDMCwK<`QS<`YdW+{r!Q!#p$=N@EM~3gZMIIE zm2EKVOj(vJgGOkDbG32E$MlW%RVu4B2X=jEJ&n!|eA4uc1;eDYo_cn#Nl;E)P7a`J z48T)Hw$`l8)#S$Mjpm#jjW$zHr*}?J@YC(#6?5Ypz;p9w_2RzhevFjTSI;!=K|qI2 zlcmkg)|qp3z*3yv5NC+fY7IGNjWLIA=dQrrUm&RL?lVE*538HuoZ`B<-)N*IgY+!Q zJxHT7XXThM4SI{-oU6~wG3J`$j0UWxOih-7X2!cKL+JYOirE&&5T-9gP|SR;k#?l& zS!I|167l~FB3=b$`SvE#l4teoMEjtJZmLW^^Rr-fuvB9ZTEnrEnwIPu-K@&;%*O$; z5_)J8tp;|kA5Jn*_48vrXivtj_B^lD454Io&9NxTZ~2swel(BMON006*=w%i+tLrA`(#{v|+_x;!PY>@ju?P!+z#3#IHubxG^ ziM`4*28S?Pi90()clw5i;lULC-?o@~_*k6M*nqe6EZsfuq063^-w$JN$*APDdj_#) zu2}pw&oV2ezR<4D(cZsN>IJ>sgt5@ITOLu5D*vcX;)sL4UGP zaJ88K{it}wHpK9v-R++Wa~LW-jIQ&v<7WE;QQG;FjRLX>{2ltZYThV#w8nbDR-Ptw zd@4r4V$u;k8~Tq_?BdzG_9>&H*GIcm_1!(GgR(%d>~62PrKX!7PJ*`LuM1LO(EC%Y zksF^L^HUmJdrZ%s&XZY^6xBDkcD&-^vf~x1ef>))SUsDEO4CgSHYF$si&=JAwyR zNGHr)|8DP7<;?gzn)Uh>ec(gaFhAWQ5ptTsu_4=(1_HlNXiizUpTrt;mvU1`dId%jfItVvi^(UW08xSJj_Fz+V8|FG(*=9}gRsj#d|GkLqX=FFno zx0)k87qHMWKE7c`R24mT5EqI1vJfpdbPZJdw-NP%29WOKfU~Fe(OwP&fxo`+2e?Bo%`mWx@2+* zZRN&U^f~5CvoRMp0%9NCH5c116p-y`(~c1jtqY>}Cpx+Rj)7Tm$H<6_%e9y@jTWQD zjJ{`RGqSXntW14YT$VPIW+o4h6Af?;st0y{Xysgky#b#3hk@y&JHHy(VUOT!aODP2 z%B)<2S#QkJ>2(&1B_}gGC)bdZiEE7Z%J}Va|GWJ|O~(a8z5^iR&fad)YpzCC=|R=M z&Twm=o1@9r#KGt^$7GB%o3%Nh^rlR-4YQRu7y=Cx`54)n(oTb!Tc>|tH`nOElFX)O zdK#I(d$8V;ZPCZ&WN0lWoFzJKT&7uf`opJ~U+fu#& z&Kpw}rCppDD|KmSWFLn7_Za!lA0yAZiTglW6IxL;8Vd8fKFy@xM;Y1D4uKDyTngFt z+d*FNl~KsjaWU}7%9xWgIe*qd>GqF$VHmGZ z5e7GP>zX1*CKf!wgX7j>5LDdkCZVrM43R+Ov-QBa9P0cWWMNs++3C6@q!P; zEhtcW$9`3qv<3+El-6uEve(*6L#m8yj;~a6+{k8x$oGe;H*Tp4cDuL~?B+IzX9$Ngd`- zHrr9Z&JV4vGdl>sLrNAZJ=4O(7P^CGnzM5Cxuy)0&X8@=LtcpdA5&uxraX>0Jm8L2ad+=Y1JnR30A}ee>#Oy6yY3Yq->C&(i6Z_PIUgu73w`*I8{76Nup@Ph(>*e(H_ zSHEgvlSy;A>AEVUTxiXt%8p*_m<$wpuR$zSNwdNYH*t$un_)JaG&vT1R<33+^(G^@DnoXTlX)tbl{06~!qh6?th;AjBQkUu89BKi zF|h)sEg)6?sk3D^v5}Uyp}Tx5^0}q?$KP?0B57&~p5^esa54$;Czd#ZdWc^)Pdo z*4AA*Rc~TZ>9Vq?zD5O)%nKt!cv)T?{Ma=qamr?F4{h3GUj5x#ybGpy)F8HpcWXz9aM&)a2=v7%<9IR92d% zVPB<|yqO-u+o6l?;0F7B8{(&CHot~FPwLLu+lX{@lpUQgWc~RN7hvv$) zB~klaGete9j!97|rBlk{gr=;KQh47>acpo)xf@r*Pww3e^Rmsz3{d6QNf^SkuL|C< zav-)>L@EfET5oDbF{j4*R#~43-0V}*))yx9XGabcz3`JR)LdHx3o1Za9~r~{-@PGRCnmL$z1iG2Wu@^L(Ob+ z6DrDhe2r48!|$u3q$QorY`StA|7pVF6OTXd;(|YJ^9}%~P}eNFwG`Xc%#3ZQ?C41o zUz==ZpL5kFGnin_wdGBDeIcj@uYb;rgk^=xy;v<33~3d}t*astC8K(+7lUFDD3yx( zo7vgsT-{wI;u4nCHl@0jHv{Z7)EyD2QC-_g0rwFV7~I-YS#WKDv?txnK6H~hj5p&7 zD6Ppx>nbT_zL|ylOF>0u*4tD1{6#a%3YYYd*uLl|n*#;zPgy!;zl)3blMVXT#n=>s zzA=nXd@qhQui9gXh0hfX`c!g(XVsn`rcC%xS@a!tv#^){;shKdn_0~hffQhgE=NQy zN^6Y(C-vt`VAur;uUteCD?1Hygv01QXx zt%%|`RTkLs!j#qivu5K$SbaKwex#L!<-n*Frs7@Tks(9)OO+r$VfmHR$A2WLOw;?q zgsy!bdxxy}x*Ol+Z-FULb)0KDS-(yiD*uMmt!*t>E3PNq0tD1>D%17q%d0)y;GTWB zjRorT-;W&drCQg#!KD6WFcj-|s=H9_(e0m*O0ND_*HvULAQlEq0lr_=FMuOgI!)r!Qjj;b$ z*f0q@g!Er`s_j!y5OPI+MgL#&N*3;GPULUC26No2Zk=I)9ppgP51U0G{$#&>_L14X zK9Iz3pfH$re0D%Z)MrR06=WnMOP=SuO=a981dwBReTA)~M#dMm*WQ=XshZ{3=aqIJ zKM+cjg7W^f^iini-I6V^xv~vbI^IQD`oglmDQ}x#LC7c7wglL_7UDUQQj@NYprXTG z4zNpdSI7=!blTY6Us*BM+!Zr=TU7<4t>6P48mX3BjYOt#8C22z`9I>D{SHK`GF6A%8` z3-Mj#i70Emt3vi{v(pSQ6I^}Uf`Al7x!BN@nld?^D(8ngcA|Bvpb`thm8~r=fr(_B zy26)A1pX@@Ek&9&EPF$v7JW$iej`wo)CH(gz&_}bHR}ep%<7|y?Q@{IHYj-`!Z$0JQuo{uxaqoQD-r$(CguJ~_W9?PBP=jljhkhF8;qUG zCQ`M8@I9u67>+w0%8uMOzwm<7gyROx|piC+I1veRhpw z;n*rX1F3B79k>#;^vojb_DY?XjN5p>F5zkJc#GFv!YiPURg*9$Ge?uU6cx8gByRCrZ-qWt( zWc5duMtN{ldC-FO{3{H0<+%Z^nnMeIIns%&MY<#^aJ>rC|EyznD#aTx)>@vSQ?=fK z4eodLb_%|(7`dtbWtmYKK0I<|LmG4OV3{Fan_im5Z7+yu=aoIB zaE{;}SfzELo5z&&Fty{AEiEvJFU*SV&Wn0R!JfB%@ttsz689ru=TD|KGB+bQZzHW6 z5Dv=<(+c>qChr3kDOs*8ss6n3x*KjZF^lJi(uVZ@%eZwzDk28Ga18eYvfhgxOb@=9 zK9MvxVLBh)%A4*#<87dc*DA0HuMLWn9pf}5k0HT#Y`}OYNPTZms@q2pzq0IHVqdZu zP5!*{cpNgR)GfpYfk_L=pFzI#TMUBSBa&Y?QANkBs5s@ z+pDVI^Z@sn>ZKM05)kVQy?)HXqWSiw0c=L;hGdq&pRJ8!fi(J#e2A3-7+tf=iU*cBiU8;ZC;COjG1u!`wY8Que{(b5>i}IBuOSJnn40 z_rT<__a20pMWpXA8t7ITY;US=4Ny$_?Kr|~pGR&%&8Y*u#dSbwWhkX)E)Ata$>`d3 z3@iehV4seHS6vt=x7WKk^<|OAS8>de+Z;n>yO#&iy)SzE6&H5zOd5CZQRMR#?C+E2 zCJ&<2I%L2ucrK8wl(!O(T`x9teLr}dUO2EYj91{jJJn5qiy&7|&8F06dx;=|Ejp0( z>iTG|!d1xbg(aIv7o~3PYKw4jfd@dlu~8)@+LonB@o>1p0zHGv_*1*uP~k=`IQdY| zrKH(91lPuwte&*(?a5n}Uo~NZLfC)sp^0IhBz_2>9_89l{z(6LoSoj8nM1j)V?4Xa zHACV-J?g*69r$;j^Ps66H&L8ud+GmFeQLDwEi$J)Nj_ zZB3YDn;gr&QStgy@vMtvTNlsrT*VJvC0-oQ24Q2Z3q?@o>Vc!M0Ajx%8bT-f-fC5{ z{E=7XPuBDL2_4ux$x88TgQIeN)BqMH4c#2iZowZa_vWms+DGDBDWblfO{hL$ONgZT zF^N3_!{DqAA)Ws}3h^@5W+yUSi_qyk#&m@j?Wd5wYz5N+LLtRh4CRnDYNaqNfZImc{zqEL~QP z!I)#r$uQ?yvf?1@G{L~hl$EV<7$|Yy*cL3+IY!*a+nGko2rKb@B9yXw{M3oARzf(} z^W}JUzsmO0iZM;)2B_%in!Z$7Icuo%#(*;bLZ{3ZgQP&CPS`X3&E$wV9v~m zgWWTX9dy~6jI33YquZl?4x@t3cUwuR58_#HM9G3*;XwOd+tzSFyrU^eMiuO<<+} zDd%E7adraaA?o>kR!WobxbJ`XV-{+<_vA%86TsDd-B~zHewui}{=RufT4RSyb+>Pj z%Ay?PA+XM`rR-q*cdnQX)x6eMz`fDwg;~GpY%5x9`X*FyzjVCH(cT7&pgHz%I<>~m zaqtS7+k*FaG65btvL7ZdfFD>KO&(D=oy3>CsNMs|$}7X)i{J&vEbI-0-%9{LT=0Sy zz+Cc*q~JN8IM&7>%!%C6+B``AWj9RcD?fYN1NQ&lr@t4;W8i-b7r!A7`thFuD8cT5 zS-+;OFMr|oSYT(_g!08o)ABoS@ss#ibO4uvjc>{ACp7lHl)KrZueekfZj5R#{2<4Y z3{WoQzZE60Ig0D0=sURd2jh$-f9$-kv{GA~0FjjJbtyv=;~q?Z#|b1qQ= zv&e3ja-Fj!_@=?_(%zgX%@!V)3%CtmdB|VI!`f*F5R_IQ$?Lwhu;1ja(Sxt-ZkNTj zS4UFyfGO}0t*`T=*5?t>UUXj6=tRHiziG>l8>6t|HO+M5{;f{^;Ionp>Q--MtPXmH(H~S1u&N1=OY}eO?Ia_N*rDHCJ zP+<3OI*>WR07=*c_+Z7JE$`o`Erjx!u)M)H`|q05Tv?Bye%T_DDt9m5rYwk4tB_Q> zm*2iwR2cuwAo}C=OYrd%(hb{{pbQy&hYkI}ZFmohMO5aK%141(EZSw`IwQ&5$vYB5}U(Y%3*4=k2DV&Jpyd%(ir zVD+U;($oj#%H2<;+KU^{5r4Nu0I4_Vj3wWEhm>WAFi6fV$}6$)yV1=j1|dfO#QuT2 z%P#CV5oAY0>u#LMZWKbN?pHTBuAE5fAX#5cV4kirz}ke%66*!W&sVws?BXK+ zqJ#tMdQ1DLs*$~X2QcZ{nFRJ-44>M(I}VHmKHZW0@*197^4zHIEL;-h2|kjheRo#d zQu->gJF|K4UwU+h<60{IJs2)s&hE~JH{mmSO@haDs&97&C&%3GxCEC@>n`+2dEMDa zM)})ARon_FfBKcD=A&7uXhwJTO?PR)>)lyTvrL1l6QgL%Y!{a?vqjW3Xfzg?Tgg$^ zK>gLb+j~jlqkFJw5fB6Dt%I}uHwC?=l0NK^$lSnSIUKDN z*sB5)*+FGUfZc&AcXTO}Qi2oNu;%h$F4TUyzhst+OUW#0Ph=u1|Bsz0ILeCgAPtQEbn zzyz6Q!j1Ed3i%tO6Il+gh0b6(S5Ilq#&Tq_be6F4l5ti7}mIPi4Y=N1J0qD39;c+>$4-UZ}=mYl+p>%jw@0p^%t;H+6 z|KE-6N|h=8h{$xeMSoIxjEpCndyEE`sYp^ahlD3}zjwGJ{6;G(`U-c)rGw4{HGnPL z`kW$}O@42ClpI@429M%S)S=l1PfD6tj;P3a7h+1*zUPKWGLf009Se+gw`qCxGYRY% zS-nQe9Kkf9bl5H8pf>8a+GB&#z}~TyGnBrg2=Q-M_-50L&$i*q)MVgufvux65Qj>5 zO5+Il<+B*7$SRE>t1f;hx3=no-BdO`5n3L7Y%c|W!{vg7q)9E-$uV`vHYOQdNow() zV%5Nge(+oQi4d|~QRPjSJ0ZV^(pP6opb-5s9}%%meFy3CQxK;W_>WvnmE&gF&)n4f z*4VBHF&9f3H_vdY(EgG}Wj-7HDDYxQ2<@ADp>g<=cfb3vJHk&Vg5KcgXb5LU4yIZ% zL3Si!pU9o7_Rssf*e3`VR~Hm3VrL@;*2Qfj$#yQHVF2{VC6Q)OjqH0XH@BgJ`-6v( zXiQ$3@{hFIYlAnZx&v^ zAQ5L(asHidRCr=>U#_`@NE*ET!bGrrWn&(|MsiB8{^COmslUd7W_^Yt<@j|th>u-` zs$+MbSUFJ{#Z-IAo5qgOSKa3!%^>2^WsFZ`tGARPRS!M-O^K@H>URU_=FTZVvWVa& zAQx-K4?%Q{T@_T=Y8M1FIpOIPe14-ATO)#3;=GP6`Ai5>p7m_l47~cZ&}xPH?KkjL zBmy0#6!4RUiI5(~`tLVTQHwo`=v3wT~Yf@mF4ZifX`>Y`)UtEQx72H?*IS=T7A<1(w{JSLLJ7WJ8ilAdbck;gP| z1Lmd8Gl`H}2`vCEUAwSz$rAshKa2ih^xySd2de+UH%PMLjJm0WV}AOEF+FF6i%ZT5 zs!jj36QxG{8dfFy2=m$pV_A^hNmvw9$Zavl|R`n7$P z=ERzrO#TX`9vvr%-_;aD6G9bGByHR4PDQ8IL^Xb|JGG{Ry(#=Yl1Wo`B(mO}|7+C! ze_=vsck=w?S|ao6D)UJ*Z%=;7TkqoHt*7MkHwSOgpk|tS`7#v^ZN_9P6@Zt47V_C4&v}Y1yOzz!yUeGHEag-czyeSo?1Qb}7 z2OFP0PeN$4F>_Mm-c<*hL#gAQJU^l`V)tH_Q0dVDN$gc6F7dN(3>eb9uZxTL zYbUN8%ly^ts-AHTGBG-|pbQ~WR*mwNUQJD6?ugS2q2wdHE-#6lrpgtgTJy@e9iS#u z3hGwvNteW9H+L%V_%@H%*^=0sRJQF&NROXw+D0mTG>Kh;Rn?zt6C;#rCGQ;XRPx>1 z7W+r4P>YJxQ|=CP0O`p?cwHwi=nfR9h3`)c5eANN_IJ$>Cqhae@qn&d`CSH}iagnx ztZjdEKrN#9iH`4Ybo6=g9e>1A@*|eABy)}u&HIXl6{dXj>fX=dPdh0;b&tJlU z=}Wr3XJP_XvJmk8i^sK*j-9|laFdtcr+eML`eC$-%MYV@Fyyyk!U4sX>NVDuRF?6k zS5^Ju=rbzW__~!S^`$b8cacr4e*RKn^e=*&HE${HzMRB1VZ!12B-d(9>%5zX(w!gM zFKj6Eo3__f1j0&Hsq%Uf+l))dwfGz% z1Fm!bUkQBEhTZJ#=wE94cm1fX>fI22W`YU>Rvqdw@UOirBtVBl%a$PzyGSy>qdtu8JzGuIhlUI>Q&3hMUjsS67K*S4ashjja2n2NG@ku0LB zKJ~kC|0}`p8%0@G2Uak*t-+tEaAej#n(ZMOeoI0+A$f^BKexWyA7&SqKg=?PDz=^T zEsj3pC0RRLSyPL==mt!(varx53%5>_3YJ;f?Is?0?0fI23ueCFdm;;zo?32YXO&X* zuu+TU(jaNYDl7Y{iMOcx>do+*^P9T3%x}tPW{iOeC^v%}k=8t8Wy_k%fPFSv*$5^B ze&h6lalHJK2`oT*Vw07fX(Cq`yV=V2xXKlB&-C`SSBQMUS>XY_{9MR4_5AkzG_?8WVe%+3b zFCJ$u_~Yfh`m#3C{xepV>LvMHva$#_{xToNYNWH*t!#*^Jofj;%|6>^Y(NEHhO=h*O zq|xp3rt_A4!P2k(!`bVI6Sv6hC#7a3vvHnOaCd=9@+wGXswP4{-mYYbSuO48I-IpY zbhfkKg-Vm=B{O4F1YFtIQ3^H=XKyOeoq3^oIE-uxONOIwKP*dT9#VJwyQhWpNN<=B zwIG{oS{KPXbvXN0u`PakR&AcMma@3p+<`J-oisboj7^(EuMbQDO>~kbay0>jO``ky$s~XP! z)r4vv-`1YDiaa!&J&#+i6riS*4aI6{ON*XtKucadYAB-6O#OH`%q7M76e*Sd zKla`OI;!IT8@`i95)zV-P}4S{_uXVGEgjMuDI_6fE1iU1q$GkOJ&17ehcH1SiYNsA zffVHi3lUO+|_w5Pd##@9wf!ee}HVd7k%w-gC0YZ@lc@nLBspJKr|n^6?n* zR#)1Pl*YVWZ;l}X>|Gm*NDn%7O$3P$;?feyEO+T~cRUNoGaf>FzXH-XY(rB@=my1d zg^)Epk#zE*FWkz(TcENO-s1BI63NdUh0oIp$d8_aA`i{ng^@)C#NS=;FE1cD{&ez7 ziR5j1A|V%x_r%l!G!5OCNM1o^#&NJRS4}G*{}G<8E+8gP(EGej{HYCR6~fio1>^-H ztZ7apH{68EHxkKiI0F~tf(4wcTCY8JQuE7ii4Ib8a$@C8iPXIMYZ54pxb;8sNFu6n z;-!xmx00{ZL)I{Eu0XDT{k>g+L0kb`N(9_2z|o3eTXnGC7GP`rio*c z$#ZnxxokMTHx(q4L}@IvB^D=2!t2G!%y6i%tc^kzLyRb?G?}atS8$jh81X<4TKje? zyvHjW(;|h7Gzu(ot3RSigGR%$UOiUrIBF^$Bo=aBLl!7A!y2hsz zhW&n5Q^*^_;jdH3LqmiQB1e%i-Gs=YqsUC3zmNyU?ep8ngD63?k%u<&@IOf&wk#W- zF3It9{IZu+ExF=DN|Tsw}c} z8~#kCfw#*Eod36_f|$2XN+s>++VQERJ-vxvm(ZrK%SjZ?otz3Qp!mJOz8^}2A^57J z8{hnS9}nT&)KoHw&}#e-L5$}r>@EE1AFpPSal+u5RFX~TsVV4OU|)41Lg0*4(!Cvh zp*ahQZ^P$;FACKovdCRR2R)vOuL2jbF`UECS^VS&AB`4P$7PZB?zE-vC{V3eo3QXsBH!8%_3jN3sb*`Q%Q+%Vp%GQ z2LZ%CrrRIafS+gLtY@VMKVSVxgrHcSN>T`2vLY3yVHrCL?cE5A@r93@z0sjJvS8Id zxg4Y0xhj>!5t{oZz7dwJNhK5E)rEgd6q?tiB3lK$aV(4U6XJ5SATQG+kEIf$*hwFH zV^b>5IU6>oBIymgo=Aj-!Yp!tP>TPJmmVc7-jYgYU_AI=1|9f*n&Y)a!XrcS_sRW*C+aA+I z3%~72CDDWi;D3vSh`p(#$wTB@#$MAR2e@7MUHE}DDu0m^wlG&Bs5aY{iLx;*`KU4`V1`VbKjrJXrXyM zQ(5v)c)vybvnLk4u)YMYunnEZ5Xd^KZglmN^|M!%hFGebD~9!q(CF3H7?TA#B@uy& zD0j0>rMB6SeZ-_USd8>^MizWrk>)w9gKH)pjKw%R2c>RXy?uhiOlmVS;OJw_Mk``e zRaUFj6l*Y9Og6nnM;jh3L0y6>YaYZFm)urV8UxFU^)K19=&i5>jDckX>L?$Bbw=NQ z!mzJ$$=B|}zSmQU!cEw4ES2oHYvkwpzM~M*TT;mmPvPd>Tw?GRmb794+Y1M;0ZSma ze7P$9$W4$MNwKYbt~^?({{h<@xsgR>H8M1h=#lUj8ZbZQi&Y9?!)?$BA4villKQMd zSm2&U{0QIt!{T_s*DH;@Y}ayX?=Dsd`~A~Mj+^jKU>X_fFMJaLM0ckrdZiJ`Ev~Py zBs&jUqrkMrBP_en142rjZHln9|r^P#V+7s~*AuTN)uD!u$u) zNV2;yaY-6^-CMY_B8^nqmGR$ZEK$(gYtqOy$vUv)zj@D_|r(O2U2<){H(q8LI4_{7$$B4M&XlwIO zgpFUj%I1wVq>H{yBX5XT$=A}zO0kEecEe};dUBkvr*IZu=DYn(WAVn`{_9?`hU26s zoIdhH8j1B`J5kL4Mz=%j=q)-!M*Oo!CXE`J2cNE17zR+Wtz~mNn*T;FJl~pzo(PRl zS&$P6dqjgjYGf1A8;!_)XNj@JsA5f88ihN1^6}k$f_avtizaR?g%2IuYZ2C1z1oBj zaJ5ONjy1;ER7e}D)u^;8gppe`RP|Fb38nGnS@3liANuHs1h`(a40r#M9jxw|Z2K+~ zpV_W&zdq&V?jmo$>%!8f$KoG$pl<+21v9jE5>;-}47rw|r) zOedoxq==YeK4do+UhR|)C0-Q5uUD?~d-k*&2cW0BrNb7WMoI7<#-`E;VD#4NhebYEmoDnC+Xt!baI3?e^N+1I!&?8 zu}+!ER!YjKWt=^$I+NbS9a#}dzj>5V#g=CDI&^kMvyd6SMu1JTQ%{NeZed)K?k(itA^bl8McVbwCTCGGs zW~I?$i#1r427^g&jkOw)U%;ZoiErJ~G|X%K<1?b@%|uw)=`$-aX5rN8bVvY!VuqiI z7U!txmUmN0{=emclBm1#g$$%X`(#}@QAp-Ue)Odng)m`rI=RzMG)f9X+7*$icK$98 zs5H}?uchKVzAABSpD=h48%-*$Ha13W(`XIIpaOfjTBA{^V|4UrKj0D{|JB$?XQonW zJef+ygjdkps^-arvz>qW2vHNF-{0_6Ml%MO-KY9AT~m5A*`ek za2Q6`G@A+Ob7OQW3sQDjkweRbY-(y_Oe{^9R|@o1Y|6o&ab!oeH)qrl$#66*!;1ko z8;oYN%Bs^@ReHTyYcv>)dU_$M5X~EIN02C%SJm-gB&z(ktgNR$%|uI5^5NIt@;m(n4#N%rA@SAJ5^-}kYNFl=2B=_sgQ#x?4b zJUI$wPpYaiq2#W8JDuF}q7B1}U|7!{T0}~TP&2%UOojPs|D-^Hjw&K+e7q*kteIk* zPjhpMNN4bv+;y2q%U@IbW@LoTtVHrSwOSpkQfiSK&4SUXbq2G+h~&(AngFCjJ&)IX zdeU4^W>pb40X?5vL^=qW-=vcX{=$-qB63c&K@SpM{tZcZB+C{b*RDt*{ER38v)xF0 zq(cUYlx)yK?Yts_60*%tY>47(-n$YhjP8_Sw-SW$mAd_r!i2C4GS02b9P2bB+HjfM zO6=xovuHDBI4weBFqmyxq^DCN&xcy8(jl>jUagL?S#(IoOs9V^%09ybXw$MH^0Qcd zibr8dSYH$wc1xKrtuWxKU!71OSlAQ2=O#4TV!fYHSWd;*Tme9-> zk?x+tPF)6>>>-LnH1bCeq7YsgkwH#~(v!dvx1>r!2(7=1A8ANR206!9g*?%Tj|(Y^ z6qKVgkW^kWeBB(6bAgoX3^G;{wKnw#QwVEwGDwIdZc&AgC;Cs#&mb54>EPoxA_cm z($yZRR9{liC2qy{?UA$yx3@k45K zE2St%hY5^roI$n_cJe`+GLQ$pi*eoz>&)3xX5Am8m}HR}!&2e@2u{%}LZ>nr)n@Qc zqfQrVVrhB}CM3eK>UE%WHoCWcft^=~shEA>EOqO<1VrGmljR-}|D4*923=rh%3@Zy zro9=Yy}fl&xK57@UuHdyZjr190Vg(VjLu>P<2D1|sWE#rO6`sP1x_=&vAp(HDqgW` zZ;xt>n&dp79(!|-8uHa6Z!Ab6zG40>)v-bjts ztWw%6W}OZxhKw4E*$fT?gETly!B|Ir>svF+zyegUI-A;t{QPQUo{U9KNU$}d-eii2 z0i}we7fPVPNNmmdw7O@4r5x2M;JbVfA$Y?vqw)JPaJ<@Xe+KE`Cp7dcCKaARQ|Hex&YC!F{C!4vD>;v3hwHUktr;t zYBi8cZ!%bPDjJ2OQ^Z9?odu4?6_YPILKvMe3+Z*I-Ji3}C@5dZGWJi|tLW)V=!hzp zmf$2YUd7nglFu^WP7!IFiOf_Jr&_1F?AdA?`?dhzX3?N0fS2Kn;cJzcPqPWwWdQ5P zHny5{DyZj5TDLI~EAkh%-}!6?dCh*t*)Xb@AP);W`P_pxA?hwd=zJ-IT(Tc` z@~6Th6vD5+XOK++^mQ=0Zk{6Jqj~9hWVl_$QcNi)9%26!q(|3}%*CtL_Dv=JqRB$c zsKz4!atK}5A3AfSO^fh1omFepsgQ0PTMc{Crj9`_Tx3W^n%AI_6&PiFOECs^*A3_L zV%y3AXd9ukY4PeR1OBfyo6VLOt-+$vB5gPRn9WqRHvuzo^CbjC=1z+8m0AuNmG8 zn@i3wihpx{p?ghZq#goAUm%xJ+$dslNb}=~q+>YbdZQJZrpBTHRl{T<85x8yB?z7d z7OA62nDd6;uXmOfonOBrtP2&}^U4ixb_!R%!+{6ZDyCMMY~Tb2?6dk&&~B^Z zGz!<2weg*U!!24Jq%2*m&7{TjBRiWFnR;VUo5iX&#L^4%nT}HR&;r*5XV1-zKx`%Q z!0BVbJd_wXaul;XZ-}`xK)W%}^_Q46is^GM^Dd28VGZpP5et%_MH*r#_Na1#SwmSB zBOYorAhoYe(s0w*yV9H@ggr$EoJqt4ho=zcJuSy(w4li6m|#Xw&&Acz%c1aTLs zIjM0v<0ZKXiO3q*G+~8f%G8XQsI*XXjRq}tyTPhbK{qp~f#G@}evHyW*I&pZp__hq zLP0A>7dueq23ij1YYrv`|4YV0iTCl%{-+f#n`DVL4f-|G<^eMdT2`1w2Tc-UEyPgB zxF)sDq@v^$8?(f1#o7t>)e;}w@^m|xHNcUeLYiV@RLHWaHrQg6u}FYy)!;j@>s#9y z+im$i1LBCd%cvm@38!vOnid@a$1dc?j#X=sQaUzPt4IDny(mj*)OwAP2AzbUPU9cT zf<=YpXmoAguww~yN+2^3T(1RB1Y&|5tAVG;3TQ&|WfeXBOFZc=aeV&K9bug*dvtcV z63&vm|8bNIb~xGp#X8whF) zjHPOgR--W@TG<5YU2QbmSYkpt9a26pEv_D!m1F~lgMGi^pa_KA!sdgF;}#tx8?y=t zO7$^Ty+&z9T>`6J#1VCADK+f&!8F8)B3aXsJ#$OfSj zTS*h%NrWt1^`JK-vvp=Cd61qj`ZY!1W;OE2Yv4esWtrAhID}B@Em#6gObn!4ffc8} zIdffS7gi#ni)7}PtU)kC>J@r{cyP-oxAw=RwyHa4Kr>AUqEBXc`l#oEX+V7Oc zcx3&JpqqzOkO6#r&E{SajL&IRu{NDC7Uion5TcA)_9RsKf-!=ghRGg#v(eI(wu~=^ zAZf`;Lz<3;AI1Pd4XlzAqy@7{8;g?_t+GNNf3 zUmIlT7Y4asiMl8TY$@a~P-+Y|l>O4H!7Ht5+Nw-JL$HqC60?+^$v5}+=@S71o(fx6 zr!|?i;1VVqP$kxiETKRctwG$1k+gPd9zkYLCL7t?)*3pan28nE18iUoR23Mp3?RG~ zuv*8v{vOsWt1Nx0s>-b}0l&ags!_HSl#zli}j|SwA6uX))RF(RsX8u7y?Bpz1~ez2H^=o^C;b2gs@#QRW0g z(SWeRz^yc6LT$9}2az3rH8zqeA7qro6V`))l7T}kD-rq+Y13)m(j@G?rWG0xS=JC$ zPB+fz6|Mw*FYiida+Dl6nOhzn*FjPICnjab_*hH3v`Cv^Lka=yWe8p@~KgmzHAP#D6KkC&^iMIpO|8nUy07 zCuKI3lI2WRTFnp@KHUTzPJcSgEz0w53!&0)UIVm2>*fAxxJtq zguXpOnUQ!l>|n%ua3B07RRBz-$6F-Ix=xkh8a# zyz5D8UnnL%l#b3MUELCF^wzu-#EIARDj?95xEQj_ zcZbG$qn#ox6S%%ECljWCL@TpBU)Vhc;twk0K~dLQv7a=Wu#A-kK6WSC;XiUu12klM= z5Xf}IvtL!AX@h-wo({Wgg1CdF#R6S6k@=CbENHButqd5qqG6g*Z?0i46B)u`ZU z)Ii6Jva;PTZYCO7fx{#5Nds8Ic5uFbPC-tOzRE&q>whor<=R%-PSC$qQ2q6>tXdFw zCxkDs2n#I2HtYd<>vLuRX4XCU{8x5`W4sDSSKS2Rtzu$xqx&23NRVCLsago%f(RH> zK=jcZdG>8aJSl&YgNsm_xQMBoOrJ)5 zH!F(dn33bjWVNx{Ybac#Mqwr#gdbtnB-Z{Hq54EIIqKilXtT~ljaBmmCqh)t#CKz8 z-KWJcox>ubhk&ZZEb2@)Tp&V71&PK4dPQq~%7GUPJH#6x4Ed}WCml3kK_>ZDczIza z87jH^3e{g@za!d$MP<-$i;3BjHZ=|=Lxjt#GRaqxhc7?)z!?R7WPK)C!rXj2@XCdV z=XmqcOdM+SiVcGi3V3*}Lb!1UIP6a2e=8;)9bHIK<;+<#tj4KyIw(?a+O)fz^oy_= ztzecG4RXZ8n+J7@a0YFIDL|)&Iax(-!Hu`?wry#Mk5%xQI8NBSIg@O57xrw;B%Yo$ z$7d{QqEEb#NqmHJ{$t7P5MjuxnamLcJTzXYYR)7tdkUA1Ws({0AvF`tu7jCXjW49J z@J+|wi4HSZP~ue!77?oinXq6rW2~_;;OEd$>Cvub*s04#XR$_9h+7^&`??uFnmN zgxcgQz^euH&1!@_K@aN!1Y`|t8&H)sI&BQBGzjaWI)GDPOS}&AG>5O}Tz4^<{ zX~f^Y;g93GFdPyvMq-4Jr&n4n1}$u`7$9mT;|Nnj6ArNbE+L0BfL|}=5kGqmTaPj$ zF6th$>5M@QF=RnAKogI_$r+BdS+NHdy)c=HsIFbSb2$$u`D;sxKnAD3#!lTJYGQ?y zFcj!eQ30kgB}yx(P==B@5m@P7zdv;$69Y!Po(9JWph3TIR2GBggX4`@J!&$Wl~6yF zaD6iyEqFz`{UOFnTZj565Y9UmA#r~IVLH=d9PegEKvqzybg*2buyBmgWHO^VGRlf+ zv83?5ki6Yo-y(SC{Aren3|Cy-M5Z5OQ>xX1IAQG2^jJ*_*tj9_8{zB%VgB6W_^qjXG0csEIjyZFyASy)EFVM_sf}ZH3=9ymY4}0 z@na?nXh7r&-`Wei;r36Nq@(0F#s@}SjTAQinn~j9j&Sh>2=_VhM<%)8P1DwmMS_!8 z7A}ew_C>$}Rto5QJu-`|l)?bKpCMhZ59PS)L!~ePIwXmO63&gzB87x9Z{Iw6^9y(Q z1TC(QJ8mzd*Z#+JH$}jwmBCbN;7x52bNK#k=`0F5U%{d36u|t0TAQwSA_; zU$ADLz6rM^N7=1dx8zl11Wu1;yDcgs}^L151gO2+RvDz?}*= zvf!n2>Rb3YcB1cQl!BqwXO}_@UtE$4hO5acC0C?KGk$HC*$QFB*izCexoGjZ3Vbo% zSW1FB3So0fopGaqdsia4(BN#yKgT<>@V-_}HvF7t&o3nxI|$=emXga}h_owZ4&p3u z)Q>LUOA*XxqInq6O$YG6;@?XV z@x|m+K4K>vadQr2lZEgyL?j*k)T<16?nJrjJMS`tvLO{SU<>OAEldK>- zPxK%eAhZUTkt6(D%4PxO}RNWV%aJP_+p$uKPbMBkq#bgdfuKvqG5kMHyM{A(VYp zMn35ys+twAfm{qlVIIWdjB(^GyI5S=4aZWG^2U+*QedG_n?H^`EQ!Q|vVAT&(@t0tl1skz zpv~QL!Oypu$B`X^*MxCI2oY8;8izCn$X<%5zBtv~NMVpJmptVuL@XaiEbcUS)i{L2 zv6$GWgjbVuozbu@-=-*pd+E7|hNbm9#wWCH8b_$Ra4s(wF|h)RiS=_At{3N$89ri^ zoDgr$CC`v;doVajAe>bCwnBKgX&jk}5W)T9r1-e*Li4m-76Ti&07q2|`V<(|{!z6L4C%-(u?iwend+O(vQtf6aPi6>ox#F$sp7H@);s0X$d#6gYUsgWfzeg7NI{6Uj70 zQMRO!7$U6xArU*5R{R8iM;f=U0CAN|{u7Ug*WVCD2`}eg5(#2874JexrB(R36U_-^ zVFZyc7m)9eFQO3A_~##_p)RN5I~Agnx*sYa<8`yL^v&G;YUWoH$_a#H_c8hF|b z+%$upyOT)fQi>?8P~<^mX-?QTKT4|G?jr>bI=B0^0tc0S?pOiYA?5uES$%tjJp(|^ z+XV>p66t5Y?>86iTKU8i1&*+>K?|xEem#%lzMd!Kw-gYgub69j>q;LWUN_I zb5y7XSNZj>0D3}QNaBP*+_4lo2s#jyx5tv8c4FtWKB*JlPZwXvB12HfFiZ$YDkM+A zjPm`dZbC!*5`+s$k5%^Brx2=h3duzeI;gOayeph4DkQb;!mu)|FVg0)u{K?MNI`qt zNyZRz(dR%alouicN`$cxQJeKYpt!{lpXU{{v2~PvkT6v}uOdOhR#PEqkywIo@amq( zOKu#1F0`>u7>lYFA{G=fG;5AeXL5MIbYw_lTnkxnaQ(fTP;Sdd4RPTdc-TQ0PnQ-V zUHbXutD}WO58~}$-Q6A@E$n%u5GkGLy5)sr1Fe~ukFedv_*=|3jhPRvMx9Q6M*#Hd zLUPSVShKm1eBdSVHQ{DbI?|ZM={e{iz$C8{jAGZJReb__~=juKslB6hpJw)a@=cHfyEOBMF|B+?bu*X zL@!iNFDIp*Ld&9Z64FUZs$TnEjzXC8dk%&cz3r@Tm{LxmDUIU;~WBE9Cxr#@ajo#U2I7ve{h zlO$AJICmapV#k#uvVL1xIXOg6?#?2U`G|>kqlI}DAEIF@zV@r41)8^Y~{ok#WN<9qtq+CIjw}W+g4YCAP2G5lQ0G>Z~OlQ%M+*Q zT4+Fjkuir0@4i*;$OJHRz#9qnNQ8HfJHOp|(uAB?VzuHoPqFC~S>+S>!X779|4BJn zBn6D08uD%)7l>-+sPKzG_RfOpvvTr;x5)EuYy+R0Ao{OI(fUgj#Dng+S3x!jlvI*f z1XW*4L6F9lt6=+lQ`~4jT6Ml0Hq2(ft?4Z+h@m0h4>v+9jx%Wq(xUm2$Ybulc4NPV3?nd{FpUp#8OaUUOo}{Noif?B901 z>3rE6Ka@MdIlld+oV*}S!4_cRoepAWnioD9Xh*qyz7>u+T8-M#_7Xm;J61Si>F$?# z6jpVvAm{!M7I+jm2@+^(U!C22%CH7 zLIo+~*Y1QwLT{IlzHapMJ0;kBO|!=$s^%~$MGB+ezN#QM-1+B~+0k^;?yj3v%&`XC+zZLC*t0qqpJJeduaj zj^Ru1wvQH`^~D&7@LcCovYpV+{42@({O&LNM+--~mXdZD`=I187)K6=J>Fj~B!r z4I}C4;7VktZmPz6rN>m-e~rhNp>7{f6@Tr`*RCL)`1p5={ApwqI#8g4QQIfn{cnHSo{@Z>xnvhe;lKvcV3#PSO(VIAc zr_Vh4Ye^EvF^H4(78K^rCp`9&ns5Dni{GH!4B{5z9wOesM)CRhEoPjHk zDhvx><2VK*WKY?%#DiZSac}_Nkml(+XB&)(4}F-%aSVpYT0ETSNw?QjqVQJJ1A~KI z9`e%Cl}|mD$Z-s`vL?^0_N2z@N@NXe9qtuGU+L<2`?rsHoPB={$1xZsYqIT>Cm*%( zASP{zmoJU?uOi*VH>p`Rz1<@_IF7+US&I+Lz4$!8Gky8o_U%0B%5Hduh#ZgOD%5?4 zM>~FfaS;$X&ZjG_{kW0@i2YrN?G;+To8uS&J)ED$x<;RN^wtsZEgqS>gJ}I=$Dk*D zI4ASP1dd}MAN0lp?VKy!g?`c9F@$Tl3U%LwYE>9QBp>))Ll7MrieJkaniZ{E_-?yN z9LJ!8a{z3ATu%4qY_q4CXHBf0HgoWVSyQL{8AXf83-gD5$#D!u%i4C^=gqIry{+9e z(WfJQzMo?#cktNIp$B*$ZklmU<@muh)5ia~&)6@kqN1^Y4ANzNj@;}+gJ!FcVmk1v zT_H3u9KDMB_3I<2rsvji9D_cxCU2kg;WkM+I=cZ;q^BwMDFj97Nd9JUtNX7eq5xIVP*s+s*jw3mnHlDeLc}r~Eh?RRQA0x6Uf_bD6X4Z}vX? zL^#JWKt#Rs(^z*r&mU>CD~UoxXVTyL9|MZcNCjc zv<&&|eXK8o5wiX-9_t{{0vd1XhD=kDBOGl`-g{%;q(?Z8!Ejldpc~R-^n5Gv@uVZt z(4>@Yony-%w!Mx$!=Sya$wzYoI7{`s`QxqA{tm}yeferqc2B}F=qGD<^x*(;(OM@5 zdeV749E*0nXkY1YpdW()vIa%F0y(;7+i);21+b~Bh>3yz?fLLdOMko3pW_(FF?su;j!w4FjvjZm7;~z!pr-U2}dUpL--Yh@OcA`xe*eK=Zw`{{anUAZOnjQ-d)F5xnA)5P!b))35AI zUmWt5-fYOrW(V`rf0;Ufueul#LUUhotl?Gtg$Fl4GG!p=0ecZ{EK`<$#%yMnnlcC{2dIoah{X&AhZIe%MS01%Bg6JBpWBL0v9$0nfIN=z` z_ut@~Asip2$PWGs-I(|-t$g-T>~p|q*)U69>C7j5&^6VCsXQ0n>+SRjAh-bexNJFH zBpK!Al5W9N(cdxEezrp)-US@TK+d^B4s>BCGJtPt?C!^(U(wy4)~Xz<{>2CP_SFMN z7-Y*vwaBll$T9fZ>)nxPX#j9hT=BEG3U!}f-Bo0VBWVO?MPi-J*NeT+G2aM}n+u5$ zV36H=JFmM)0&077>_oHLIc6^Pt<6cxJzz)x$i>KY?{w#b7M8{E4R7k(yUfqz(H&lG z+=u}KazS0a10<-lKkKmv(fQ!lCl$0v=d4 z2-!jz#LM2}lYpMmCQvRI5Ja0tI`-7W!CtSt9tE)oAeX*O={-f#7C5Z8AIm_LbP}5LK!Krf{PWp892e}-_AYIm? zpmT3Vdq?t$s|tUrbgF%46M!4T){XBiqL_Kg-{A151n>DNG98OTM|e7-m1*4PmKUY>txcV&9OmmaTh9E1MO$1#pJ?X%v}iw8Cj z_C!8dOs+@`Uby^|F`*dK1i&brpT@dFoBD8c@8sdE_#`t9h%>vUq-Js#P*MgO=gsT^ zqptU1JGDPwlibD6Wi7fE#+U5d#BmIO#?DV;UDKhy^mKA186gfNX@mObONAWAAli8s z>-nX;ejGK%qcFM4Kz1b^H(i*+aSY^We&(5eb~BA)L)Xq!NO6q4{O8qA&oyxz15j`0 zr?IYcWPg6K8p7TE7j1ahi++GLV}M0)ej4lEsp~Ipy=cB=e@qCSHp)SCR^kd)qF4Ge z;V4cLTE$ljUUIrJ5ww|soZ=>2>d(=mrjD?vEQvV?BY@Kib3Hcr!Ngr?1CW#5x5f@| zSYh_`Fxjmz;&WQ7zJBn(VI0RG*g0Z0g(V&XIsQUab})S>)iE7Uz5kBx!>3?@0gRH} zJu+&bB&aF78(fvHA8&46yc;}}fgGLZyg85&ieWCB{kb*K%a=pgWFRMY3x6Ldirf&E zplJ0K`Cw=|o4eBSgCq*o9HRB(%YRI_6E^XdHR3IcRu1Bg3T?d0ldi1Y+U?RoU=Bbb zdyzpe4dR2+v@qbac@?FXy2ScnO(0tg1C%WGgNR2LPqd%nJqwaQ0Mq3BG}g`b zRB^Pnm{|ZD4j5ex2>S02_1aa*aSY_j$SdZh zU@w2-QavTFWZRoTI^}Q}s zl3}nXKwuE{FYzH;iErH6gT3%7jhZ)pbT61c{D`r$gskEMPRnO2H2g!g zBpi&1^W{fp=Gsv~yyLWZN77Gfn)fse{Cr?Wkr(wIgOwc0>=*m`e!xGDM=|h`J@Snp zjcB2>{SDuu+2{Z|ct;J}YAA7EALqxnUlixc%U`(D>*vMLuow)G_1tc_hMq$QdJ&gi zT=3Q21A91*fgD#)KBVFJ^*un7G721+x6b>WD|@D6W&z={USHN|IX>uFqn+M~FF&YL z6$$m;{)|>+!E^+KysqL*@BV0EaOQAW)BsvpH@%+Kid>4WDRhwSow$O0eo-rlI`#V# z+PfGrdWYYgnLHR+3XtQ{Jhe`0q3E6%$p7KL$8~zP^?&QwYREVY;$Z&#=zoTi&RRc{B#YV$fCg zjFuxhTDObgL+-RVFM1FiNbGz2+4l?E_kk@7AQyA=-{~anrRiK^2mZK_=z55tTh(#w zwHqAAKp}h5t`I%{$JInTg%ww2?O66AA9)x=q~%*K_7A4#@SQ|k$|{d%|M3>bG3X)d zD!I@g@wFZ2T76;~2a8s!oJ7%|(qA0b zos9*rHw`Occ>gOL%Iz;591gE`8$91;Rrjj*Eghk{Y50M z+w|TO6U6yL|-_6&$Dz?XX zoH>BFMe?X#89|k#%5L2&ea-K~U7$h?~ek@>l!wTgFz*z1AQdbT*UPU&)@Bw1v<(g z*m*mf)x)MFjz0?fs|y*`ueN+RAI2vJa$Gm8Pm)%;>W!{`^xSvDv2pL)Mtc?{mM_Bo zU?AUwA@3#KKj=V{^A6%a$jlby+UX?5YfyRjWxcO-yd=(t-y=snf6C!F1`tf0pT@e_ z70Hr0T+uYwZ}6Xw;8MT6@$I#VAm{-3>(+dljMqKhIXK`?ZD^DQrwVRKDKrij(rM7F z&3Pk!hPcE)t~{QtNpZ+50dzMSNb5H~I_KclJy7KV@?9L>lwucQ8V=@qNg{#xic9Bw z_Ec&bL_a`3=L@oxxmh`i&z+aoU&0S@8Bd4LT&%KzWCNmQH!s;ailak5A0bmBe@=?% zaBTsm0f6qEAM_nCTBN`uT#klsKlaAvjulal7Cd z2lf+=!4T)IY}mcu9LV#tD4}L`Uh8DoplXj6@v)bGomJ>^XuL#v=eiY7#>EmQ1`UY z((P+fMH9XLf)HdPyNUZXogtcmw#;%oYQ%eAuJX_0I0kYw=euP%jRfs@KYyiN8xr3s zx8#y_D&~rTd{_N3DdWE9MF$r*5wTrd<6z&w2jMUV09|l?8tYE}CqpuNG~dbT_;-Z>Js>Ofus9W$8v7% z`eKhuczFgn&IatAD&EMJgvQ)oN>B`)Ih}|D890p%v*~iS6L*f`q`Kl52#xdef{|v=@%R zP6WUVJ3oze>mSJx<(@?GzPG08e|-XT!XVyx7kkM!N9Rhjt?-);&kjbJ#TJSC@0fVp z%^*S6LdeWzOPxq_k2vOVqVdu5$KK;O1|T2KPh;J_yj+pjjS@RO-8W9X6!XkLE=9f{ znMdoUI~=c$<0{nsg@in)*8TXV$1B>oaD|Ddf8{f<_ZX<0k7Dm~>#02HsJ1z-JlN$# zC3M~GS=aF%4CJ<;RX^p48-i~lQFh@?T;jVkFaX0Bck(!sW$xb|fp>IYIB8lF$1#8{ z+W7&d-OXc%yZuqPqdd&zbnWw*+q{c%IgSDNu=CScH~#s2Hlqr@>U`&bzYwAYpgf`O zKKJt3WYC9n&cTf^s!(mj zDdl`&>oh$R$`ON9S(8g)g_82v@R6T4O`q!^JIkl2IvJvYT7Y<23qHP3!rt7e@f}N+<2~tkJ@2!)gkr{3J+WX6l5T09A9=QcDif1o`8;t zx%R{-&u|ZoDBfv)a?7iVv8i{Xj>-zWOy1JZrZun+?r2aTWbbx%}|M;dv!mav_HkV_r+e3Xv zrQ%Koa_+inf2p01!!#enKi+J!ql&mwHso>Mg>yKLfn1o?e^-iA>cHW!AKtf+@2>I4 z{!by?O8`A(bMle747cYveK|GdY#m0(S_#cYz;d8fVVE=l&13-@Qr#p<}_`m^IB3xc$-K{GD z1F*{($mxTQj^pU?Gs8(YzUK1@t~y}W!{O^bScJm~0E8vy2mWeT#)*qa``0;W!{GsS z)hS>D46q{3Ph;INYx(_?3~#=6>qNWJr#~YO6Z=2Z{@4<*EI=1$D@M2~`Et$(r@=WB zXU(T|AX}m0BrVQPIat#j)C2&|}7&!=Xevdp9g)Tj82lCANa- zC+Fv4*B3|d_3*}7V}PX$!kj&_xBOyQCC7h0$mFVjcA?J|x+ilSgCyDAla^LWl)2^S z%)q}GA$F#$MjRq!1pv0b^8*p}tx8(?P$d~G?(&DbOGpPEhbE~NJvtf(ADnEATDR=w#+j#A@neiizAs6tWHk? zKR)}jnXcx9{yRP~Y<_~{80cgV>UPk|pHQvnJB%Ybr^K zhzJL973zMpej;Pez*47`+ixBFA!O4;ktDf#fxWlq@)N5;ycoz|Gjz*D(Myn4uNe$O zOAES?>?=y!f~NryAF zOJxSnl{vkh91;ob9w67Gv`Z&31Qop*0{>!rnZ09qN(6{K1Gz!t$di*fe!AZW{an!R z+>n{a4%ESX2^ioU6+_k@-%jR-7#R)+7m4V^mtiN}DJUSIr|c1(f~NA*OBdSxXT(YU zdc~TJQPCiI0CevBfFm?bWm5zjbV7i2c%0@%bU)aUHXQP<9z%lTbb-NR>WqF(6I4$-y4OgM= z{VQjPebHw8vzPcLy~>6y{yGjJF#x5kgRR00QD)n;Z*cp+JonSCpPc_p&2bF6%9?%n z#|*oX{pQ@!UUU)f*l7n9SH{N9z}o``%bHwN&y=K#ZQiKZMn82n(a-I=_S+tWV*ozt z{4~~?pP9+1o!-S%^XBa4PJ5Q)L=XVd;{3pU3YIU?iKFppDLW^%pY z!H?(Q#TmpqpTXYc_A_K;yPJ%#Tia{7kp`56^+5iSLYk#*K3eV$}csE-+HkM0r?FgLB=oo_vG zb_9@f?>CRm6NRz(I(W<8KMeYB;FnW(1K$}8l|3T(t$C80W|MC_SNFS~aWp%6XFi>6wa_k-x zv4G=+zNW!0c&eiz2wF*2zI_G zL(5ac7SihNAiyFXWKJK+J%MpBz^pqzAiy^ki+hW<;^qP3Z0jHVX3I|?Jq+ZX9`;=V zUx7#*!o)x681$wCDb>aoIF3Prvtu@d3vo*%y|h-J7v|#Ru`B%X+S;XXCkLoxEw+ER zgbASt#5|<$AcZiB!>?{()adt1BttD^>}W^jmvu> zNidKrXoWA=^39K~SGu6h!^59@XT&T#0PrUy3#gMG(loh?_g|>>nyaG^1Zg>rfqb3M zF0B*SxtBPt0|UM`tFWyY^pw3sk3)4FZ3-Jsy7B?bW$rwCKU{Fu?Ig!BkPA1P0v~ib z|GOyt$2L6rPAZ0n5qgD1`W({b6T z-^qx4dIZvLXZP2aJ|x*t>l11MX#`I6q-{4l^zyhtKtu*uL+7WluJekAq=nCYYg3?$ zD{Muh()s{21P1aJ{Go^Jrj`HI)^$Ktk#pgBG(nLLf^?K7NKwEpMa6~)mKAlCqNuwz zu|M}Z`;UTcEvx=tGV_MX!kqJ+Gw)53xk+yBy-9BF zM19Or`vdQo*7d;$6is2Syn?pHpns;5()BnD!TMxnaYU~@*93urR~WNDP8Y<>`Xy>t z!*%~IbJ4-{fPz=C6EDtStD0&J>;1>K(VMpj0!4d{hT}FF%JQ;217!nmtHz>UlVv&r z1<%{pPi8PnL^5?J#{IBmv)MYogX-Yh^V4H?=l(7T z6yO2nf=5{T9C-&kU}-D$j=pVb%l=M!8i9g0@qg2wE3aIa8XBqFa_aTL4~nAUnE^nK zDOX38lhVSyorWP5wMXUF2zFO$pb`i7~V54N9OjECSCOk=V9c>W1Ld(Zz&aJy! z{np~LSD9kC>q_OX=Xd&?n+}-=@HSM9#q;Qf zogWF?5w9`tOV{4kT$^0bQx{92fH7CLtJ8d0Fb%5CbuV(}LbquRXF#R^XaMDc=Y#8f zW-oh*W^o-=l6#az!wGQp7ARUN=~-XrOF7^*^{0czRO~RWo~-29K#Jc<2a;9sd@>1l zby%a+T0hypF3fHU53aDn;`xF&(j-7WTf$0s$x3jVvp_o~F%U0pnJP;!R-XH?jsFZx zMbrVnl`C(}<^=*VzvE5Ab6^Ql@-90nx|&sQ`FC($D2STcgJiM9mO7T-EE#g@99B4i zV6O01cS$j{gr^u5+R-dmIT~cQht~LqwTnm-+)0PXVvl!UxVg4Qpy0>w&+8UZ+2$$6 z*x=L_JLkn}9k`d4GH7>>yxhJg+(0~VCS0E0vTC0^@#@6W0fIo`#8LLo-5iX+?WOV( zGApo@6<9Y+RIDCbm1X@)|G{(3!m&LL@OH9wJ5ie6;KUM67e{Hw^S0p7USysiQ1HTc z)(lae2Br+1Z$Lin(`Grgdik4ivG9lic(K&qcCkd3i^V28)vDz1?3opvFyJV7wrl+J zVo56D^P*bY*Kdu5jmt$0YM?pSAh${uOD+Wgt7@qndR~6d@|t)M5eWd^SdQ7eL=Y3# zy7{OEXY0_@#ix?M2>>qvtbbmrD5xqPy*+AqI;_D~1qFnwa^@mGVlH~m z!_kq-BRU3w3DcWvP!YgP$wWt7?~hAK;6bhDLH6!3hARdN0!0%p-O*1=CFX(eskO9M z<4NVlovTkWO@76ZV1VbFJ^hynKMhYDoJ_XksHUVm$9EpO?ifTDMJKL&;l`ix@szZ5 zc&YY3q!pFlOXnvy4TNX`_|?z`Z~l}NYWAgI<3;i9)D_N1?C|?!SZ@@3Utg%VT$17> z4149$CRx``8&a0Mh0`(so>i{A^fg|~nNE*px?yEgk5;CjgCa;tMVoQCLoVC6`Bx)X(z-SgQwG%0XR?)vyofswS{{PA zMPbKfXllJm5EG)is#oPFXEqvGe<0>F0Kc&3`_n41^u=EF8Y(&KJ*L$!U_F4B^Enq+ z(PhyPmGeZt0eP);1i|W=a$&a7b~W9D4kH1|#JOME=TUuN(NYXil2R6Q?zmdiE~R*r zuBWvF=yPVB!O@_Yq8pdvd-iHc8pDIdMhttjU%e#S@eJj?L;F`NvvD<>m_`1R?U#XG z2QV{GuDtZxM^;nu1t0zswkn#s*qmrD`y(lt|Y&(k}H%vojcXDn#e=^oL zfe0>LF=GC}TtQ5N=4SXXcj^5I6IDQxP3J(a&atM%92(wPER5-9EvD>`P&<$~oToK< z+G-7HPVau8W3x@OUrqCMaH1VB(_m z^!k<>_1yJ-lca9}=xPd{n?AQ#D^|oF#z7{!sLjf@Ti)mO6dO~4!j&sKW8hj$s-D`) zwhogfsjY;JG8oYm4qWPX6LyPV*A}bo=zBiq1FGLT9ag+so+qJ$s%SXD=;P35H8lbS zPyg{odnCOM-@3Ze;ww9H(qr>W*G!N@VZ@PT*m^HJ?weSha6NDdOkjUVN;2AS!07)@ zs7VD)p*y0@Ug@>)XOUL}S)`8OTMfE{8WC!w7p8Cj;h5*)^F<5^&yO93f{8# za%Hcyz)TPN*)d7Q8h+Wexiu!0MOa5W6-vrlnT!j$B)cF^B17&-Ip5J8~erzBU? z_DSo#$4RepIe4`rr-9}T$nr*ycBhOv5!hFA2Hx!9o4`dbSf%h%qT&i0C~!l zm#({SKOt8TZiunk$7Z|opY#+23O?O|1_c5M?MS^2(l#cly$%lka;HW0`*4rb3dHcK zH=3$;;GFb+3-5)YMd7ZHLC49d9R=cpoj25H%qMNUf7=&LNnyz)PB1z^zF*a@CT9Jm z-%ErjqUg+}I~00=?qo-)4(Kks27YON=Hy! zb#I!z;F3n5;O%?Q*M~?V(n$-4nocc)hEIe;E&vlzx!@js_=q4jYnP;+;O@w2AHC-# z7LWixB`vLOPK!cmb+!C=?J;e}gcf_FBKA6C&lTY5UF>-jHu{H9OLEIbYlECPk#CVY zRS+n6>6q63C=K(bJ|1lKVM7z@K1b1kBPQV7QOQnCsAXYDN^Wb%=&mrIE@`kNDIi0X zD=+;~nVh5WT#3EPj6V|4(eK{x-~|AglnYxk&c~F622??bh||StZh1dgEEN2*@Tb*s zj)a#sRrdqi?%wryR0Vtx0KUUk8y+W@?`pUG{2RU6ch?6x4d4x(&YzFNB8H3J>^cxk zh-V^sa*VCl-gC)knA$)ar2@3i#(A8e11eMuTV|lI^3m+~vEJ^@5E>LNT#nJMC&mAz z{-st?+Y=Ui>Y9Wp6~NcG|F0*Rg^mb77Ai;hfMu&(dFdM-onZ%Pdq|qFXhLE2GmgFyXT?{)Kb2=3 zEOE%Co_#j9#Bm>hpUp-I=OkU0vh0aE@WX?bwKpEYXs6(*k7{*}`eay%#i`HK{#ifI zUKX7T)kop0kWKkHuJD|8N@!YTC*@?Z=~rE>%TYAovV}E1Po;&2m>twqpPc>>*IJ$Bi0XR%)6dU$1I$JUmGFNSS>4lE`DZ4HLZvowv^py9%J-sB)EO%JcA?1j#D)nvuon;X_65!Pe z@G9@SPO%~iIhS_U#UqF1nA|>&4LP7K_a?`Iaz1RxnMzS1S&lu|d<;sq2m%GqMR8u2 zF)rOjxC6MU;-UR&yrG~I6gLIW%*$?G7R2~7WwM_U>o3n<9>W$x%2I@K1bMk!!NjSv zaj0ssZ+GsO0uL}h1wQ~BGp>j$Q_7pEl>EbA;s)7XgxUpoR$Fr7O65+F$^>tJ<@sIj zdf5H}cy>0Lf0daYIqh_7h~FkuU@^T60)=ryJnrmu#obp~YiuJ33%(71NuH7y*uy)2 zT~#@}$RW8{^PU({&@DF(Vh`Y(_uI3p>^ymM$%TuxR@;1WVv7_^C;;B96C$o*_w`Mp z+N@hRs^hL!!?Ab*bm7`|%#Lf)(&&F&Rvwj4N$T7Q7COMQu7k^UHsIRjcI>IqCjk{& zaoRrEYEkve$3;J1mxM-I-#BBEg&dM+hWGu(gG4Dbud^(ZJcT?0^>B3zl8JL4%C7l-6Bo@8!Ouo#)=~ zCiRwUr&=E>b24qVw3bGo;73Yo(oK1U<@8Y>GwJ(r$+hak=M5imi=@7f*Ysswp4>F) zwE+eP1sF}a^3s30e2bJJT>wiLKk1JSuU5fl8sL{Zx7pn$8$W2PyFc@6{x{6kDEJmS zbMQ7}JNYOipKF8jpFyrj2#RoHH03g=&V$ciZqjLcSzu;cugF8>m1zK>*d|MgGs|NYws%h{rf26 zAN?^FDIBx$R1~&cVh^MH@@dW~9T6nt!M|G3Q-(Wx-T09E5~(Ya zVhu?2EL}LXRBlNMaLtvmL0MQJ0K&P{PJiMJ>~tBVjg=~F@^)ml*WK<@ zO2dBpi`lt4Rp%3D4Sga@GZ2*@;ERo$S1RwZ8K*j^yzbL=XsM#zLrG3o#{Xf<6I+iT zZq?rgUVT7Kj?DW`4~3sb3{3v5+L+LN20UCh1NH(%7?*EA@I!^&&BX-ruYBT@4bmmL zl$iF@%OmEP6e5E53ws#we%cWj5!>|NIR)r`07ipy z;Z(27V|lN#SU*ADzY5rPe%&63Q3_t@C*FO`x*saSPRp%{251(&agClJuo7-1%j~xO z?V%^2J}F@1Dpy|mtj14d$B-Di*=jw#b9JIyWD?{Sz)Oi$lb^t-U~_*{)m(c)=$DE8 zlhOSEpP})?CnURx5k99<>Av9Q+wgPGG4MzLcmZ%P@+oCLguW)$RZqU$uXEcqu`9gv z0KTy&9Y8)gGQ9d^BI~2r+%vbsP!oy}rTSFzBRWs|BictUJ$BX3(OAo8`&h18t+#$0 z>?Q~l5nQh8!{uDr|4X(dt&PyoEXS$B<*Q~i0xtu+-1#$G&ao}BxtU0OX3FA_Wm~wd zf$7xs*m3}ZxfhK;E@vyXtYfQMICL&L8eEPxpy17kuEU>Ga{|Ycial$J%WL6GT$&P1 zcl@j&#rI*&Q$Q&x7XlX_dM+l)(V5hd0pi-4)LJkei;e)V!!DV>kc1D3(bU!;05|19 zCaZfFd_4QFryx-9gXq+p7lOF8XCGTK$r$5@rOr27_1n#C9AX5pa;IE*=^u9?b?kXA zl)#S&t#5B=9Ql$hcuJ8tSuyK<0>Al(;`{_)q7*{Acn%U17n1}{UDnv9Z?jgenTLH% zAdE}+bUK;$lx{+0AMC8L5X%E_9KLeYnwhj5=m^fH;G6tKoifUL;2}*nGva^I47zR# zR+%NYyf&d%p9T$v_y+hHY(l#-DoL3~hXIK<)ehI1*&B>oXFxRoykvg4sf;Z<;1p(k zl_%=O=_NzDZh=X)e=}miI&J*L2USvFI}D zu)bhm41ZD>n*Hh3c+=PeF3 zFjF;E&$-DumK(6%4e*j<{iHXFN3p3&atwYRI;8sWtfpRXnZ3e1x~lpj)~M*a@Sh|> zpa|eNW@*w}Sx^7i*+e3awOP6?rM=|jTQ&(r3|F;aIk2hgoE&@ji2?kuh^+BWjE&SZ zB>r~V5i!oED5`cGPOkuvc*>QR-nia7W{r>)NG$oGWR9)*V^%5_fB-0d<;qLnJmH;O z!+;t-2$w%f+byX>gS*{wgr6l4rDUMOV@BCK#y?>st*(|Dzxq*Et3NJzrq+9=gh;lR z14JSdysRl|+ta29On5I_gwz904)?{T3L~yR%GAb9<>yORwxdY;B@o1ms8ePC_+9uD zgA@o(3N)m0!IUui08=)Jn|!wz*Q7)BpN6Qn^n+{%EFTjge;R@jwtT{*C(%!I1PWeb z6#o5zGFUTl#Y}w2k{y>}RsG^Xt2*TTCrORt>mkPCy6J}Mvo6Q?T=sSfg5Uvo0oU`* zC&ny@Wo{-qVXu3|K)dkZyl>Ka6^`B5 zs#Xbp-TG>IJIE^v-VDn<_)T7m2{Ykh8<$jcnq40woq}iD);izm7+@~{Mq=v`*)rv< z5nbkbt*m}6ZGZFcY~tBoT1R6IXzWJoS?p;Dudj zpYPJNaz&|OEz$YPF!h|P{BHTx>Q~plP5w@nAMnC=x0r#(h={ERA~dgaG5K*33*WV~ zBrEWbq_O?-`);(@sVh+Mx})cIK|@U6yJ^%%(ua>K3*3w@q2Lw#>VbM1Vltb4i=xsr zbn5^0yW2J#djUFe9XWTC9tku|(D;aj{q0>;>wyciKA)X93f_5uKbNIWKYe0um4NTB zx%9%9M@-yN2Ub5v+}Z1vUecFKEZq`eqw4BwEK2lsBh-l-L5mQ}b>osV19?1b-F=~1nl0cB?l+$Cn%57qhVSZW~ z;;m4$QQklsYH58VDT7#ex~qq3voYH2(d%_Eu_<`FV#2VRaux)YlNXNJ$X#{)i|J)p zRTO-~O@W6yBa6=N>WB!|qTb~5O557o&_^RswC1SWVPA_}c7m=F6HXh*o-XWFd-uFH zOW6!j4)7JSLC{9Z_ike0)-*MBYl^0gtbR-I={sXB-$yiYQY}5anK#&OlPCxjejH&N z`qq{!lyVGln%Su`M%WeeybbFiRVjGgwCb&#g+*fU6jOdcjIc__-)HVc+n0ckDfnsU z4kr^5+b}`Xmc1Y`?^Kst5M~s-_FXa7M5d|qsi7MQtI?EOMta+C;>D@UFmD0^xXL_Q zqGYVm(2~U2YBjy%uIMR4cEP<4;K$dFU{jLmhw;URYE6GC9}-@eO3j#)6KI?p+Fbi~ zmZX#>(Xq22fw0`+l{RCejTDTLje%G(GG-P`C5mW{HgN#U;XyYk994c~tk6RNv`}m( zvqDMv$xa$mVu%TxG{Lm6ek**4!Qvgj>#T}0xzy4V2v8IAozhx4@mu+7{omaOVkZaS zWGe|wJSzT}6 z{~lT@Z0#-f9*t#kfS1cbM-YI8wpz;grWPu(+@&#X_B)L%Wrhz+@wfW#+4_9r!v>`T zuy6%5<|qmLQOd_=V%EeoNK1T4@%3FfP!1F@@suksJ*m)ABbN4_ul8=6Qx@DaIYSUA zATX5+)@EZXnIB_3Kh;->meh*Dt4%-*MGGYZl}7&*APXD3*`sRI7Qg?UCLelWVtnzQ zj$Mo}ucol$^7VgZr4iGuUF@XqN3ntO!TO1K-dzwVcx{s#WGxYv(*>dFDi>PwI)!}D z9(Lp9*Zw|o4kn80t33R#Z`Zr?zc_^U1F%M{TzTp5;;kjwMZ$E#G<8&wQHn!ozeVns zpX1YwHHjl4XUTC>SPZRYZ?tcWaqNNl_19C_z+_?m*cVHuxBj?*%Y{*gM zab^#`&M0Y0F0%)F5P@IQ6vC4|aOu`-qV|D<4QWpw(Cp1e*aQTul$z0gO7yfLmyyqv6}{*3Z+#_V+U)bP(Tq+`95rBwf8wxV z@gd1oRxw$@<|7wQ(ZQ}Qz!$v9*M@Wl0aC$(uC+CnYuV4=hAhGZ=P9&+p`rK6%|R7~ z8An-cV}*bL!$yuy{;!W0&Arpwv-b=`EIa{x?(85XHzmJGv;Q0}L~i}ahtB5^X{94= z`?jrYNNjUhOsu_(eY@y%)`gu3@YMNy5bY=uoB(D zhSX`1fDnk3*m+s&t~|V;5h!f9s{TD#>R(GT1gXtfS2W2q*edt(ryyI_{gz}C9$T;% z9L1fz?x&`eH&N5$Q0Y#`cA#f_pdsm9J7{dkEIc=k zr#-&-$PSnA7)Voqukyj04%!Z3>={x`ha|d>aP|QMQt*`dcsY`H3KdBMlC5Pf{=>(S zgm+262X;D#YAa|HRC8b9-#GmM@WssVcO+(AAt`M5gSV9Qsirr!$m}=X%1Lgut0>fh zwc4hk_4A%$&{6OMWW22tF$mKR5VzDB-{sC+;Oay=;DIFFF8|VQfy^x#?oJvKJ1-6^ z1IzK;j5YT*+}Z18c;iv={f-(dZa0z=7#lKeT`RN<1z)X%Moz>mTsxFW-vvpFz%3L! zrI&-9*pRm*gOOSil*0wRru~qTg6FZtAx-7~P$2hBd2c7uEdm07^~$UGEaUvkIsygXCguH{ z$YP|Ec=<5y>~$~ryOMjjb76T6*J*5DVey`V&)d6^tK9zqZM4!U!_nJJCSk&GSEg?y z<)j%s?zZ+psw-KC9FlUnggblP31eMJ8SW&BsBQ=Toww6miBDTCy|K8n*BzDX%KFus zOv7(!^oBLFjJgQbL1B$P(_RQ4vdWe0MmjgfPIsgd@?6PB+_|#<9NJM9o3zbULoRRc z0(}{SKO|WdaLu##V3bF}GtIBNT*)M)b7hV8{C@`;?-z9h3cdnn=Unm898`b_0+XMb zKL~#eK>+X_{xz|_nq5K$R_*Xek~!Y>Qw>3&;NLQ=y*mky#9Np+%FQ{Bg+8jz^p9z z&{EiczWv-urt;r5_Mc0lJ1N4QL__}2gHt6M%uoI5uC3aDVTq$hClhlR8rG3?^e*_; zy}WZE6fD3u$gv4ZE+!cRs%a3fc@7t3CTp=-Y5{AqzJpeF9K@ZyZj0^iIVu^xCsGnjf3_l?*c zabPSMnu71|Pdl`wjYDclQqIAhz3!@Ao@4{=q~5x~{>#~?P5l+WCBfZr{K$#Vu|7e; zQ=fCtlLU0u4$UL`pKW!1tRqnH={5&@kr6ZQvJC2`i%IUN70>LxQ3pT3CCwfB*9?S;>?X_>l2 z3~E|->#eb^LQUMV))fO`Q&50Alq)a&>M@^OXj4f*=C*wHE)5SUcn%tJ(uZkX$tLU? z;;JW6)1dAtAMFTWyc|@m4gK@j_`l?OnVj<>$MHr#3))j zhW&A8ud5g2OS<4r;=bYRzbyPW8+X#U-a`M=^A7RVkeElkH8xi2i7Oo>yWXt7B~#+w z+?Uw~QVU-x@3cWSG2C1Gk{@6+NW*>7#3=~51kSe6b&c>POX&kPN+#5N;``235GZ)s z9V302&1yZos@35ZurRtWLhDiRT-R=huevEinp7hejve>BcnanK1>ZwO`u-##22z{x zON@7m!BP*IoHFuP6-&~f9IRNH^jWt>xnc#i{mCO_uE!+T+*PY@WMGShf+um0xw@?Q zkicq4{GYvP1DPX-{_d|KD{uCL+!+_E)vKd@PK3)nFf_womK=xhSdtv;i;|kkoIZ56 zKPkrpiPLu;&v-09h|lsT0p0L`^}{6lJ};uc*c5y}bYI|4Qjo458^@RY&&9I(piX?- zU0nn^UGGpj&my@oYo4n;7n;dUsJ~WSZQ=?RkeYDZd4yS$X11T!`;(CFT4Fs;t@|Rk zZP{jjHvP0Dv+!6FXn*3)UibNSe^P)uNmoB$|1H_=PySW@bLm0T<(%**t#Ky_z6AE) zA7}iT^0g-K(Qndx%AxCyW)d}1{contentDetails' * attribute. */ - const ActivityContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -130,10 +126,7 @@ class Activity : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -267,10 +260,7 @@ class Activity : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const ActivitySnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivitySnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -280,10 +270,7 @@ class Activity : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivitySnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivitySnippet mutable_snippet(); private: void operator=(const Activity&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details.cc b/service_apis/youtube/google/youtube_api/activity_content_details.cc index c13912d..6c09e57 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details.h b/service_apis/youtube/google/youtube_api/activity_content_details.h index 637b1c2..8528d6b 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_H_ @@ -61,7 +61,6 @@ using namespace googleapis; */ class ActivityContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -117,10 +116,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'bulletin' attribute. */ - const ActivityContentDetailsBulletin get_bulletin() const { - const Json::Value& storage = Storage("bulletin"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsBulletin get_bulletin() const; /** * Gets a reference to a mutable value of the 'bulletin' @@ -131,10 +127,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsBulletin mutable_bulletin() { - Json::Value* storage = MutableStorage("bulletin"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsBulletin mutable_bulletin(); /** * Determine if the 'channelItem' attribute was set. @@ -156,10 +149,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'channelItem' attribute. */ - const ActivityContentDetailsChannelItem get_channel_item() const { - const Json::Value& storage = Storage("channelItem"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsChannelItem get_channel_item() const; /** * Gets a reference to a mutable value of the 'channelItem' @@ -171,10 +161,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsChannelItem mutable_channelItem() { - Json::Value* storage = MutableStorage("channelItem"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsChannelItem mutable_channelItem(); /** * Determine if the 'comment' attribute was set. @@ -196,10 +183,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'comment' attribute. */ - const ActivityContentDetailsComment get_comment() const { - const Json::Value& storage = Storage("comment"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsComment get_comment() const; /** * Gets a reference to a mutable value of the 'comment' property. @@ -209,10 +193,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsComment mutable_comment() { - Json::Value* storage = MutableStorage("comment"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsComment mutable_comment(); /** * Determine if the 'favorite' attribute was set. @@ -234,10 +215,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'favorite' attribute. */ - const ActivityContentDetailsFavorite get_favorite() const { - const Json::Value& storage = Storage("favorite"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsFavorite get_favorite() const; /** * Gets a reference to a mutable value of the 'favorite' @@ -249,10 +227,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsFavorite mutable_favorite() { - Json::Value* storage = MutableStorage("favorite"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsFavorite mutable_favorite(); /** * Determine if the 'like' attribute was set. @@ -274,10 +249,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'like' attribute. */ - const ActivityContentDetailsLike get_like() const { - const Json::Value& storage = Storage("like"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsLike get_like() const; /** * Gets a reference to a mutable value of the 'like' property. @@ -288,10 +260,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsLike mutable_like() { - Json::Value* storage = MutableStorage("like"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsLike mutable_like(); /** * Determine if the 'playlistItem' attribute was set. @@ -313,10 +282,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'playlistItem' attribute. */ - const ActivityContentDetailsPlaylistItem get_playlist_item() const { - const Json::Value& storage = Storage("playlistItem"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsPlaylistItem get_playlist_item() const; /** * Gets a reference to a mutable value of the 'playlistItem' @@ -327,10 +293,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsPlaylistItem mutable_playlistItem() { - Json::Value* storage = MutableStorage("playlistItem"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsPlaylistItem mutable_playlistItem(); /** * Determine if the 'promotedItem' attribute was set. @@ -352,10 +315,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'promotedItem' attribute. */ - const ActivityContentDetailsPromotedItem get_promoted_item() const { - const Json::Value& storage = Storage("promotedItem"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsPromotedItem get_promoted_item() const; /** * Gets a reference to a mutable value of the 'promotedItem' @@ -367,10 +327,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsPromotedItem mutable_promotedItem() { - Json::Value* storage = MutableStorage("promotedItem"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsPromotedItem mutable_promotedItem(); /** * Determine if the 'recommendation' attribute was set. @@ -393,10 +350,7 @@ class ActivityContentDetails : public client::JsonCppData { * Get a reference to the value of the 'recommendation' * attribute. */ - const ActivityContentDetailsRecommendation get_recommendation() const { - const Json::Value& storage = Storage("recommendation"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsRecommendation get_recommendation() const; /** * Gets a reference to a mutable value of the 'recommendation' @@ -408,10 +362,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsRecommendation mutable_recommendation() { - Json::Value* storage = MutableStorage("recommendation"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsRecommendation mutable_recommendation(); /** * Determine if the 'social' attribute was set. @@ -433,10 +384,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'social' attribute. */ - const ActivityContentDetailsSocial get_social() const { - const Json::Value& storage = Storage("social"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsSocial get_social() const; /** * Gets a reference to a mutable value of the 'social' property. @@ -446,10 +394,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsSocial mutable_social() { - Json::Value* storage = MutableStorage("social"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsSocial mutable_social(); /** * Determine if the 'subscription' attribute was set. @@ -471,10 +416,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'subscription' attribute. */ - const ActivityContentDetailsSubscription get_subscription() const { - const Json::Value& storage = Storage("subscription"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsSubscription get_subscription() const; /** * Gets a reference to a mutable value of the 'subscription' @@ -486,10 +428,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsSubscription mutable_subscription() { - Json::Value* storage = MutableStorage("subscription"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsSubscription mutable_subscription(); /** * Determine if the 'upload' attribute was set. @@ -511,10 +450,7 @@ class ActivityContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'upload' attribute. */ - const ActivityContentDetailsUpload get_upload() const { - const Json::Value& storage = Storage("upload"); - return client::JsonValueToCppValueHelper(storage); - } + const ActivityContentDetailsUpload get_upload() const; /** * Gets a reference to a mutable value of the 'upload' property. @@ -524,10 +460,7 @@ class ActivityContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ActivityContentDetailsUpload mutable_upload() { - Json::Value* storage = MutableStorage("upload"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ActivityContentDetailsUpload mutable_upload(); private: void operator=(const ActivityContentDetails&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.cc b/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.cc index 8c12227..cb81971 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.h b/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.h index ed77dcb..6c751ca 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_bulletin.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_BULLETIN_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_BULLETIN_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsBulletin : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsBulletin : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsBulletin : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsBulletin&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.cc b/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.cc index 5a1cd40..b27e15b 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.h b/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.h index 0e193d4..ad7d5e9 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_channel_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_CHANNEL_ITEM_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_CHANNEL_ITEM_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsChannelItem : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsChannelItem : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsChannelItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsChannelItem&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_comment.cc b/service_apis/youtube/google/youtube_api/activity_content_details_comment.cc index 556d1c8..c2c9bc2 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_comment.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_comment.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_comment.h b/service_apis/youtube/google/youtube_api/activity_content_details_comment.h index 7e80f82..cbd179a 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_comment.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_comment.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_COMMENT_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_COMMENT_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsComment : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsComment : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsComment : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsComment&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_favorite.cc b/service_apis/youtube/google/youtube_api/activity_content_details_favorite.cc index d11d401..1dcdff1 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_favorite.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_favorite.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_favorite.h b/service_apis/youtube/google/youtube_api/activity_content_details_favorite.h index 36aa46c..6524f97 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_favorite.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_favorite.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_FAVORITE_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_FAVORITE_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsFavorite : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsFavorite : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsFavorite : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsFavorite&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_like.cc b/service_apis/youtube/google/youtube_api/activity_content_details_like.cc index 988b399..9739b33 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_like.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_like.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_like.h b/service_apis/youtube/google/youtube_api/activity_content_details_like.h index 46f1015..67a8908 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_like.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_like.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_LIKE_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_LIKE_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsLike : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsLike : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsLike : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsLike&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.cc b/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.cc index ab052e6..c53338b 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.h b/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.h index 7b58593..44d2522 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_playlist_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_PLAYLIST_ITEM_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_PLAYLIST_ITEM_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ActivityContentDetailsPlaylistItem : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class ActivityContentDetailsPlaylistItem : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -195,10 +191,7 @@ class ActivityContentDetailsPlaylistItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsPlaylistItem&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.cc b/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.cc index 03a1ae7..ff01fe5 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.h b/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.h index 48acdfb..931f056 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_promoted_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_PROMOTED_ITEM_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_PROMOTED_ITEM_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ActivityContentDetailsPromotedItem : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.cc b/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.cc index e0441b7..7fe13b8 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.h b/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.h index 13af7c7..63655a3 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_recommendation.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_RECOMMENDATION_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_RECOMMENDATION_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ActivityContentDetailsRecommendation : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -145,10 +144,7 @@ class ActivityContentDetailsRecommendation : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -159,10 +155,7 @@ class ActivityContentDetailsRecommendation : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); /** * Determine if the 'seedResourceId' attribute was set. @@ -185,10 +178,7 @@ class ActivityContentDetailsRecommendation : public client::JsonCppData { * Get a reference to the value of the 'seedResourceId' * attribute. */ - const ResourceId get_seed_resource_id() const { - const Json::Value& storage = Storage("seedResourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_seed_resource_id() const; /** * Gets a reference to a mutable value of the 'seedResourceId' @@ -199,10 +189,7 @@ class ActivityContentDetailsRecommendation : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_seedResourceId() { - Json::Value* storage = MutableStorage("seedResourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_seedResourceId(); private: void operator=(const ActivityContentDetailsRecommendation&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_social.cc b/service_apis/youtube/google/youtube_api/activity_content_details_social.cc index 7c352d0..a9b00e7 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_social.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_social.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_social.h b/service_apis/youtube/google/youtube_api/activity_content_details_social.h index 76aaf0b..18f34ec 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_social.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_social.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_SOCIAL_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_SOCIAL_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ActivityContentDetailsSocial : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -218,10 +217,7 @@ class ActivityContentDetailsSocial : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -232,10 +228,7 @@ class ActivityContentDetailsSocial : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); /** * Determine if the 'type' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_subscription.cc b/service_apis/youtube/google/youtube_api/activity_content_details_subscription.cc index b10faf6..6da163e 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_subscription.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_subscription.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_subscription.h b/service_apis/youtube/google/youtube_api/activity_content_details_subscription.h index e010cb0..0c94b48 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_subscription.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_subscription.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_SUBSCRIPTION_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_SUBSCRIPTION_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ActivityContentDetailsSubscription : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ActivityContentDetailsSubscription : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -120,10 +116,7 @@ class ActivityContentDetailsSubscription : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); private: void operator=(const ActivityContentDetailsSubscription&); diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_upload.cc b/service_apis/youtube/google/youtube_api/activity_content_details_upload.cc index a3b45c1..c62d8d2 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_upload.cc +++ b/service_apis/youtube/google/youtube_api/activity_content_details_upload.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_content_details_upload.h b/service_apis/youtube/google/youtube_api/activity_content_details_upload.h index 6a32c50..cb6a978 100644 --- a/service_apis/youtube/google/youtube_api/activity_content_details_upload.h +++ b/service_apis/youtube/google/youtube_api/activity_content_details_upload.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_UPLOAD_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_CONTENT_DETAILS_UPLOAD_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ActivityContentDetailsUpload : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/activity_list_response.cc b/service_apis/youtube/google/youtube_api/activity_list_response.cc index e135a6f..d685360 100644 --- a/service_apis/youtube/google/youtube_api/activity_list_response.cc +++ b/service_apis/youtube/google/youtube_api/activity_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_list_response.h b/service_apis/youtube/google/youtube_api/activity_list_response.h index 19004a4..6668a60 100644 --- a/service_apis/youtube/google/youtube_api/activity_list_response.h +++ b/service_apis/youtube/google/youtube_api/activity_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class ActivityListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class ActivityListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class ActivityListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class ActivityListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class ActivityListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/activity_snippet.cc b/service_apis/youtube/google/youtube_api/activity_snippet.cc index f900b2a..4627a47 100644 --- a/service_apis/youtube/google/youtube_api/activity_snippet.cc +++ b/service_apis/youtube/google/youtube_api/activity_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/activity_snippet.h b/service_apis/youtube/google/youtube_api/activity_snippet.h index 7f59345..1414bb9 100644 --- a/service_apis/youtube/google/youtube_api/activity_snippet.h +++ b/service_apis/youtube/google/youtube_api/activity_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_ACTIVITY_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_ACTIVITY_SNIPPET_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class ActivitySnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -301,10 +300,7 @@ class ActivitySnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -317,10 +313,7 @@ class ActivitySnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/caption.cc b/service_apis/youtube/google/youtube_api/caption.cc new file mode 100644 index 0000000..46b669d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// Caption +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/caption.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/caption_snippet.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +Caption* Caption::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +Caption::Caption(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +Caption::Caption(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +Caption::~Caption() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/caption.h b/service_apis/youtube/google/youtube_api/caption.h new file mode 100644 index 0000000..8a768c9 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption.h @@ -0,0 +1,237 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_CAPTION_H_ +#define GOOGLE_YOUTUBE_API_CAPTION_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/caption_snippet.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * A caption resource represents a YouTube caption track. A caption track is + * associated with exactly one YouTube video. + * + * @ingroup DataObject + */ +class Caption : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static Caption* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit Caption(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit Caption(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~Caption(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::Caption + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::Caption"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'id' attribute was set. + * + * @return true if the 'id' attribute was set. + */ + bool has_id() const { + return Storage().isMember("id"); + } + + /** + * Clears the 'id' attribute. + */ + void clear_id() { + MutableStorage()->removeMember("id"); + } + + + /** + * Get the value of the 'id' attribute. + */ + const StringPiece get_id() const { + const Json::Value& v = Storage("id"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'id' attribute. + * + * The ID that YouTube uses to uniquely identify the caption track. + * + * @param[in] value The new value. + */ + void set_id(const StringPiece& value) { + *MutableStorage("id") = value.data(); + } + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#caption". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'snippet' attribute was set. + * + * @return true if the 'snippet' attribute was set. + */ + bool has_snippet() const { + return Storage().isMember("snippet"); + } + + /** + * Clears the 'snippet' attribute. + */ + void clear_snippet() { + MutableStorage()->removeMember("snippet"); + } + + + /** + * Get a reference to the value of the 'snippet' attribute. + */ + const CaptionSnippet get_snippet() const; + + /** + * Gets a reference to a mutable value of the 'snippet' property. + * + * The snippet object contains basic details about the caption. + * + * @return The result can be modified to change the attribute value. + */ + CaptionSnippet mutable_snippet(); + + private: + void operator=(const Caption&); +}; // Caption +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_CAPTION_H_ diff --git a/service_apis/youtube/google/youtube_api/caption_list_response.cc b/service_apis/youtube/google/youtube_api/caption_list_response.cc new file mode 100644 index 0000000..3f09108 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption_list_response.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CaptionListResponse +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/caption_list_response.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/caption.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CaptionListResponse* CaptionListResponse::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CaptionListResponse::CaptionListResponse(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CaptionListResponse::CaptionListResponse(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CaptionListResponse::~CaptionListResponse() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/caption_list_response.h b/service_apis/youtube/google/youtube_api/caption_list_response.h new file mode 100644 index 0000000..7c6538e --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption_list_response.h @@ -0,0 +1,273 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_CAPTION_LIST_RESPONSE_H_ +#define GOOGLE_YOUTUBE_API_CAPTION_LIST_RESPONSE_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/caption.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class CaptionListResponse : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CaptionListResponse* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CaptionListResponse(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CaptionListResponse(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CaptionListResponse(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CaptionListResponse + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CaptionListResponse"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'eventId' attribute was set. + * + * @return true if the 'eventId' attribute was set. + */ + bool has_event_id() const { + return Storage().isMember("eventId"); + } + + /** + * Clears the 'eventId' attribute. + */ + void clear_event_id() { + MutableStorage()->removeMember("eventId"); + } + + + /** + * Get the value of the 'eventId' attribute. + */ + const StringPiece get_event_id() const { + const Json::Value& v = Storage("eventId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'eventId' attribute. + * + * Serialized EventId of the request which produced this response. + * + * @param[in] value The new value. + */ + void set_event_id(const StringPiece& value) { + *MutableStorage("eventId") = value.data(); + } + + /** + * Determine if the 'items' attribute was set. + * + * @return true if the 'items' attribute was set. + */ + bool has_items() const { + return Storage().isMember("items"); + } + + /** + * Clears the 'items' attribute. + */ + void clear_items() { + MutableStorage()->removeMember("items"); + } + + + /** + * Get a reference to the value of the 'items' attribute. + */ + const client::JsonCppArray get_items() const; + + /** + * Gets a reference to a mutable value of the 'items' property. + * + * A list of captions that match the request criteria. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_items(); + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#captionListResponse". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'visitorId' attribute was set. + * + * @return true if the 'visitorId' attribute was set. + */ + bool has_visitor_id() const { + return Storage().isMember("visitorId"); + } + + /** + * Clears the 'visitorId' attribute. + */ + void clear_visitor_id() { + MutableStorage()->removeMember("visitorId"); + } + + + /** + * Get the value of the 'visitorId' attribute. + */ + const StringPiece get_visitor_id() const { + const Json::Value& v = Storage("visitorId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'visitorId' attribute. + * + * The visitorId identifies the visitor. + * + * @param[in] value The new value. + */ + void set_visitor_id(const StringPiece& value) { + *MutableStorage("visitorId") = value.data(); + } + + private: + void operator=(const CaptionListResponse&); +}; // CaptionListResponse +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_CAPTION_LIST_RESPONSE_H_ diff --git a/service_apis/youtube/google/youtube_api/caption_snippet.cc b/service_apis/youtube/google/youtube_api/caption_snippet.cc new file mode 100644 index 0000000..533c81c --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption_snippet.cc @@ -0,0 +1,63 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CaptionSnippet +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/caption_snippet.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/client/util/date_time.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CaptionSnippet* CaptionSnippet::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CaptionSnippet::CaptionSnippet(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CaptionSnippet::CaptionSnippet(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CaptionSnippet::~CaptionSnippet() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/caption_snippet.h b/service_apis/youtube/google/youtube_api/caption_snippet.h new file mode 100644 index 0000000..42a2901 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/caption_snippet.h @@ -0,0 +1,589 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_CAPTION_SNIPPET_H_ +#define GOOGLE_YOUTUBE_API_CAPTION_SNIPPET_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/client/util/date_time.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Basic details about a caption track, such as its language and name. + * + * @ingroup DataObject + */ +class CaptionSnippet : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CaptionSnippet* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CaptionSnippet(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CaptionSnippet(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CaptionSnippet(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CaptionSnippet + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CaptionSnippet"); + } + + /** + * Determine if the 'audioTrackType' attribute was set. + * + * @return true if the 'audioTrackType' attribute was set. + */ + bool has_audio_track_type() const { + return Storage().isMember("audioTrackType"); + } + + /** + * Clears the 'audioTrackType' attribute. + */ + void clear_audio_track_type() { + MutableStorage()->removeMember("audioTrackType"); + } + + + /** + * Get the value of the 'audioTrackType' attribute. + */ + const StringPiece get_audio_track_type() const { + const Json::Value& v = Storage("audioTrackType"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'audioTrackType' attribute. + * + * The type of audio track associated with the caption track. + * + * @param[in] value The new value. + */ + void set_audio_track_type(const StringPiece& value) { + *MutableStorage("audioTrackType") = value.data(); + } + + /** + * Determine if the 'failureReason' attribute was set. + * + * @return true if the 'failureReason' attribute was set. + */ + bool has_failure_reason() const { + return Storage().isMember("failureReason"); + } + + /** + * Clears the 'failureReason' attribute. + */ + void clear_failure_reason() { + MutableStorage()->removeMember("failureReason"); + } + + + /** + * Get the value of the 'failureReason' attribute. + */ + const StringPiece get_failure_reason() const { + const Json::Value& v = Storage("failureReason"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'failureReason' attribute. + * + * The reason that YouTube failed to process the caption track. This property + * is only present if the state property's value is failed. + * + * @param[in] value The new value. + */ + void set_failure_reason(const StringPiece& value) { + *MutableStorage("failureReason") = value.data(); + } + + /** + * Determine if the 'isAutoSynced' attribute was set. + * + * @return true if the 'isAutoSynced' attribute was set. + */ + bool has_is_auto_synced() const { + return Storage().isMember("isAutoSynced"); + } + + /** + * Clears the 'isAutoSynced' attribute. + */ + void clear_is_auto_synced() { + MutableStorage()->removeMember("isAutoSynced"); + } + + + /** + * Get the value of the 'isAutoSynced' attribute. + */ + bool get_is_auto_synced() const { + const Json::Value& storage = Storage("isAutoSynced"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isAutoSynced' attribute. + * + * Indicates whether YouTube synchronized the caption track to the audio track + * in the video. The value will be true if a sync was explicitly requested + * when the caption track was uploaded. For example, when calling the + * captions.insert or captions.update methods, you can set the sync parameter + * to true to instruct YouTube to sync the uploaded track to the video. If the + * value is false, YouTube uses the time codes in the uploaded caption track + * to determine when to display captions. + * + * @param[in] value The new value. + */ + void set_is_auto_synced(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isAutoSynced")); + } + + /** + * Determine if the 'isCC' attribute was set. + * + * @return true if the 'isCC' attribute was set. + */ + bool has_is_cc() const { + return Storage().isMember("isCC"); + } + + /** + * Clears the 'isCC' attribute. + */ + void clear_is_cc() { + MutableStorage()->removeMember("isCC"); + } + + + /** + * Get the value of the 'isCC' attribute. + */ + bool get_is_cc() const { + const Json::Value& storage = Storage("isCC"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isCC' attribute. + * + * Indicates whether the track contains closed captions for the deaf and hard + * of hearing. The default value is false. + * + * @param[in] value The new value. + */ + void set_is_cc(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isCC")); + } + + /** + * Determine if the 'isDraft' attribute was set. + * + * @return true if the 'isDraft' attribute was set. + */ + bool has_is_draft() const { + return Storage().isMember("isDraft"); + } + + /** + * Clears the 'isDraft' attribute. + */ + void clear_is_draft() { + MutableStorage()->removeMember("isDraft"); + } + + + /** + * Get the value of the 'isDraft' attribute. + */ + bool get_is_draft() const { + const Json::Value& storage = Storage("isDraft"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isDraft' attribute. + * + * Indicates whether the caption track is a draft. If the value is true, then + * the track is not publicly visible. The default value is false. + * + * @param[in] value The new value. + */ + void set_is_draft(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isDraft")); + } + + /** + * Determine if the 'isEasyReader' attribute was set. + * + * @return true if the 'isEasyReader' attribute was set. + */ + bool has_is_easy_reader() const { + return Storage().isMember("isEasyReader"); + } + + /** + * Clears the 'isEasyReader' attribute. + */ + void clear_is_easy_reader() { + MutableStorage()->removeMember("isEasyReader"); + } + + + /** + * Get the value of the 'isEasyReader' attribute. + */ + bool get_is_easy_reader() const { + const Json::Value& storage = Storage("isEasyReader"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isEasyReader' attribute. + * + * Indicates whether caption track is formatted for "easy reader," meaning it + * is at a third-grade level for language learners. The default value is + * false. + * + * @param[in] value The new value. + */ + void set_is_easy_reader(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isEasyReader")); + } + + /** + * Determine if the 'isLarge' attribute was set. + * + * @return true if the 'isLarge' attribute was set. + */ + bool has_is_large() const { + return Storage().isMember("isLarge"); + } + + /** + * Clears the 'isLarge' attribute. + */ + void clear_is_large() { + MutableStorage()->removeMember("isLarge"); + } + + + /** + * Get the value of the 'isLarge' attribute. + */ + bool get_is_large() const { + const Json::Value& storage = Storage("isLarge"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isLarge' attribute. + * + * Indicates whether the caption track uses large text for the vision- + * impaired. The default value is false. + * + * @param[in] value The new value. + */ + void set_is_large(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isLarge")); + } + + /** + * Determine if the 'language' attribute was set. + * + * @return true if the 'language' attribute was set. + */ + bool has_language() const { + return Storage().isMember("language"); + } + + /** + * Clears the 'language' attribute. + */ + void clear_language() { + MutableStorage()->removeMember("language"); + } + + + /** + * Get the value of the 'language' attribute. + */ + const StringPiece get_language() const { + const Json::Value& v = Storage("language"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'language' attribute. + * + * The language of the caption track. The property value is a BCP-47 language + * tag. + * + * @param[in] value The new value. + */ + void set_language(const StringPiece& value) { + *MutableStorage("language") = value.data(); + } + + /** + * Determine if the 'lastUpdated' attribute was set. + * + * @return true if the 'lastUpdated' attribute was set. + */ + bool has_last_updated() const { + return Storage().isMember("lastUpdated"); + } + + /** + * Clears the 'lastUpdated' attribute. + */ + void clear_last_updated() { + MutableStorage()->removeMember("lastUpdated"); + } + + + /** + * Get the value of the 'lastUpdated' attribute. + */ + client::DateTime get_last_updated() const { + const Json::Value& storage = Storage("lastUpdated"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'lastUpdated' attribute. + * + * The date and time when the caption track was last updated. The value is + * specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. + * + * @param[in] value The new value. + */ + void set_last_updated(client::DateTime value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("lastUpdated")); + } + + /** + * Determine if the 'name' attribute was set. + * + * @return true if the 'name' attribute was set. + */ + bool has_name() const { + return Storage().isMember("name"); + } + + /** + * Clears the 'name' attribute. + */ + void clear_name() { + MutableStorage()->removeMember("name"); + } + + + /** + * Get the value of the 'name' attribute. + */ + const StringPiece get_name() const { + const Json::Value& v = Storage("name"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'name' attribute. + * + * The name of the caption track. The name is intended to be visible to the + * user as an option during playback. + * + * @param[in] value The new value. + */ + void set_name(const StringPiece& value) { + *MutableStorage("name") = value.data(); + } + + /** + * Determine if the 'status' attribute was set. + * + * @return true if the 'status' attribute was set. + */ + bool has_status() const { + return Storage().isMember("status"); + } + + /** + * Clears the 'status' attribute. + */ + void clear_status() { + MutableStorage()->removeMember("status"); + } + + + /** + * Get the value of the 'status' attribute. + */ + const StringPiece get_status() const { + const Json::Value& v = Storage("status"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'status' attribute. + * + * The caption track's status. + * + * @param[in] value The new value. + */ + void set_status(const StringPiece& value) { + *MutableStorage("status") = value.data(); + } + + /** + * Determine if the 'trackKind' attribute was set. + * + * @return true if the 'trackKind' attribute was set. + */ + bool has_track_kind() const { + return Storage().isMember("trackKind"); + } + + /** + * Clears the 'trackKind' attribute. + */ + void clear_track_kind() { + MutableStorage()->removeMember("trackKind"); + } + + + /** + * Get the value of the 'trackKind' attribute. + */ + const StringPiece get_track_kind() const { + const Json::Value& v = Storage("trackKind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'trackKind' attribute. + * + * The caption track's type. + * + * @param[in] value The new value. + */ + void set_track_kind(const StringPiece& value) { + *MutableStorage("trackKind") = value.data(); + } + + /** + * Determine if the 'videoId' attribute was set. + * + * @return true if the 'videoId' attribute was set. + */ + bool has_video_id() const { + return Storage().isMember("videoId"); + } + + /** + * Clears the 'videoId' attribute. + */ + void clear_video_id() { + MutableStorage()->removeMember("videoId"); + } + + + /** + * Get the value of the 'videoId' attribute. + */ + const StringPiece get_video_id() const { + const Json::Value& v = Storage("videoId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'videoId' attribute. + * + * The ID that YouTube uses to uniquely identify the video associated with the + * caption track. + * + * @param[in] value The new value. + */ + void set_video_id(const StringPiece& value) { + *MutableStorage("videoId") = value.data(); + } + + private: + void operator=(const CaptionSnippet&); +}; // CaptionSnippet +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_CAPTION_SNIPPET_H_ diff --git a/service_apis/youtube/google/youtube_api/cdn_settings.cc b/service_apis/youtube/google/youtube_api/cdn_settings.cc index c345e72..b01a854 100644 --- a/service_apis/youtube/google/youtube_api/cdn_settings.cc +++ b/service_apis/youtube/google/youtube_api/cdn_settings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/cdn_settings.h b/service_apis/youtube/google/youtube_api/cdn_settings.h index 2c5d94a..1f0ccb4 100644 --- a/service_apis/youtube/google/youtube_api/cdn_settings.h +++ b/service_apis/youtube/google/youtube_api/cdn_settings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CDN_SETTINGS_H_ #define GOOGLE_YOUTUBE_API_CDN_SETTINGS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class CdnSettings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -144,10 +143,7 @@ class CdnSettings : public client::JsonCppData { /** * Get a reference to the value of the 'ingestionInfo' attribute. */ - const IngestionInfo get_ingestion_info() const { - const Json::Value& storage = Storage("ingestionInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const IngestionInfo get_ingestion_info() const; /** * Gets a reference to a mutable value of the 'ingestionInfo' @@ -158,10 +154,7 @@ class CdnSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - IngestionInfo mutable_ingestionInfo() { - Json::Value* storage = MutableStorage("ingestionInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + IngestionInfo mutable_ingestionInfo(); /** * Determine if the 'ingestionType' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/channel.cc b/service_apis/youtube/google/youtube_api/channel.cc index 379e440..f486e5b 100644 --- a/service_apis/youtube/google/youtube_api/channel.cc +++ b/service_apis/youtube/google/youtube_api/channel.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel.h b/service_apis/youtube/google/youtube_api/channel.h index bb85bfa..1424113 100644 --- a/service_apis/youtube/google/youtube_api/channel.h +++ b/service_apis/youtube/google/youtube_api/channel.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_H_ @@ -61,7 +61,6 @@ using namespace googleapis; */ class Channel : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -117,10 +116,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'auditDetails' attribute. */ - const ChannelAuditDetails get_audit_details() const { - const Json::Value& storage = Storage("auditDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelAuditDetails get_audit_details() const; /** * Gets a reference to a mutable value of the 'auditDetails' @@ -131,10 +127,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelAuditDetails mutable_auditDetails() { - Json::Value* storage = MutableStorage("auditDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelAuditDetails mutable_auditDetails(); /** * Determine if the 'brandingSettings' attribute was set. @@ -157,10 +150,7 @@ class Channel : public client::JsonCppData { * Get a reference to the value of the 'brandingSettings' * attribute. */ - const ChannelBrandingSettings get_branding_settings() const { - const Json::Value& storage = Storage("brandingSettings"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelBrandingSettings get_branding_settings() const; /** * Gets a reference to a mutable value of the 'brandingSettings' @@ -171,10 +161,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelBrandingSettings mutable_brandingSettings() { - Json::Value* storage = MutableStorage("brandingSettings"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelBrandingSettings mutable_brandingSettings(); /** * Determine if the 'contentDetails' attribute was set. @@ -197,10 +184,7 @@ class Channel : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const ChannelContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -211,10 +195,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelContentDetails mutable_contentDetails(); /** * Determine if the 'contentOwnerDetails' attribute was set. @@ -237,10 +218,7 @@ class Channel : public client::JsonCppData { * Get a reference to the value of the 'contentOwnerDetails' * attribute. */ - const ChannelContentOwnerDetails get_content_owner_details() const { - const Json::Value& storage = Storage("contentOwnerDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelContentOwnerDetails get_content_owner_details() const; /** * Gets a reference to a mutable value of the @@ -251,10 +229,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelContentOwnerDetails mutable_contentOwnerDetails() { - Json::Value* storage = MutableStorage("contentOwnerDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelContentOwnerDetails mutable_contentOwnerDetails(); /** * Determine if the 'conversionPings' attribute was set. @@ -277,10 +252,7 @@ class Channel : public client::JsonCppData { * Get a reference to the value of the 'conversionPings' * attribute. */ - const ChannelConversionPings get_conversion_pings() const { - const Json::Value& storage = Storage("conversionPings"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelConversionPings get_conversion_pings() const; /** * Gets a reference to a mutable value of the 'conversionPings' @@ -291,10 +263,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelConversionPings mutable_conversionPings() { - Json::Value* storage = MutableStorage("conversionPings"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelConversionPings mutable_conversionPings(); /** * Determine if the 'etag' attribute was set. @@ -391,10 +360,7 @@ class Channel : public client::JsonCppData { * Get a reference to the value of the 'invideoPromotion' * attribute. */ - const InvideoPromotion get_invideo_promotion() const { - const Json::Value& storage = Storage("invideoPromotion"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoPromotion get_invideo_promotion() const; /** * Gets a reference to a mutable value of the 'invideoPromotion' @@ -405,10 +371,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - InvideoPromotion mutable_invideoPromotion() { - Json::Value* storage = MutableStorage("invideoPromotion"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoPromotion mutable_invideoPromotion(); /** * Determine if the 'kind' attribute was set. @@ -468,10 +431,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'localizations' attribute. */ - const client::JsonCppAssociativeArray get_localizations() const { - const Json::Value& storage = Storage("localizations"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_localizations() const; /** * Gets a reference to a mutable value of the 'localizations' @@ -481,10 +441,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_localizations() { - Json::Value* storage = MutableStorage("localizations"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_localizations(); /** * Determine if the 'snippet' attribute was set. @@ -506,10 +463,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const ChannelSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -519,10 +473,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelSnippet mutable_snippet(); /** * Determine if the 'statistics' attribute was set. @@ -544,10 +495,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'statistics' attribute. */ - const ChannelStatistics get_statistics() const { - const Json::Value& storage = Storage("statistics"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelStatistics get_statistics() const; /** * Gets a reference to a mutable value of the 'statistics' @@ -557,10 +505,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelStatistics mutable_statistics() { - Json::Value* storage = MutableStorage("statistics"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelStatistics mutable_statistics(); /** * Determine if the 'status' attribute was set. @@ -582,10 +527,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const ChannelStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -595,10 +537,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelStatus mutable_status(); /** * Determine if the 'topicDetails' attribute was set. @@ -620,10 +559,7 @@ class Channel : public client::JsonCppData { /** * Get a reference to the value of the 'topicDetails' attribute. */ - const ChannelTopicDetails get_topic_details() const { - const Json::Value& storage = Storage("topicDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelTopicDetails get_topic_details() const; /** * Gets a reference to a mutable value of the 'topicDetails' @@ -634,10 +570,7 @@ class Channel : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelTopicDetails mutable_topicDetails() { - Json::Value* storage = MutableStorage("topicDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelTopicDetails mutable_topicDetails(); private: void operator=(const Channel&); diff --git a/service_apis/youtube/google/youtube_api/channel_audit_details.cc b/service_apis/youtube/google/youtube_api/channel_audit_details.cc index ccff423..e6cec8a 100644 --- a/service_apis/youtube/google/youtube_api/channel_audit_details.cc +++ b/service_apis/youtube/google/youtube_api/channel_audit_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_audit_details.h b/service_apis/youtube/google/youtube_api/channel_audit_details.h index f2ae3d7..d50f716 100644 --- a/service_apis/youtube/google/youtube_api/channel_audit_details.h +++ b/service_apis/youtube/google/youtube_api/channel_audit_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_AUDIT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_AUDIT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelAuditDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_banner_resource.cc b/service_apis/youtube/google/youtube_api/channel_banner_resource.cc index cee9ea2..fa03307 100644 --- a/service_apis/youtube/google/youtube_api/channel_banner_resource.cc +++ b/service_apis/youtube/google/youtube_api/channel_banner_resource.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_banner_resource.h b/service_apis/youtube/google/youtube_api/channel_banner_resource.h index 760dec1..7439391 100644 --- a/service_apis/youtube/google/youtube_api/channel_banner_resource.h +++ b/service_apis/youtube/google/youtube_api/channel_banner_resource.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_BANNER_RESOURCE_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_BANNER_RESOURCE_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelBannerResource : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_branding_settings.cc b/service_apis/youtube/google/youtube_api/channel_branding_settings.cc index e338f6b..0487618 100644 --- a/service_apis/youtube/google/youtube_api/channel_branding_settings.cc +++ b/service_apis/youtube/google/youtube_api/channel_branding_settings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_branding_settings.h b/service_apis/youtube/google/youtube_api/channel_branding_settings.h index 8e43aef..b59cfda 100644 --- a/service_apis/youtube/google/youtube_api/channel_branding_settings.h +++ b/service_apis/youtube/google/youtube_api/channel_branding_settings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_BRANDING_SETTINGS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_BRANDING_SETTINGS_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class ChannelBrandingSettings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -109,10 +108,7 @@ class ChannelBrandingSettings : public client::JsonCppData { /** * Get a reference to the value of the 'channel' attribute. */ - const ChannelSettings get_channel() const { - const Json::Value& storage = Storage("channel"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelSettings get_channel() const; /** * Gets a reference to a mutable value of the 'channel' property. @@ -121,10 +117,7 @@ class ChannelBrandingSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelSettings mutable_channel() { - Json::Value* storage = MutableStorage("channel"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelSettings mutable_channel(); /** * Determine if the 'hints' attribute was set. @@ -146,10 +139,7 @@ class ChannelBrandingSettings : public client::JsonCppData { /** * Get a reference to the value of the 'hints' attribute. */ - const client::JsonCppArray get_hints() const { - const Json::Value& storage = Storage("hints"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_hints() const; /** * Gets a reference to a mutable value of the 'hints' property. @@ -158,10 +148,7 @@ class ChannelBrandingSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_hints() { - Json::Value* storage = MutableStorage("hints"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_hints(); /** * Determine if the 'image' attribute was set. @@ -183,10 +170,7 @@ class ChannelBrandingSettings : public client::JsonCppData { /** * Get a reference to the value of the 'image' attribute. */ - const ImageSettings get_image() const { - const Json::Value& storage = Storage("image"); - return client::JsonValueToCppValueHelper(storage); - } + const ImageSettings get_image() const; /** * Gets a reference to a mutable value of the 'image' property. @@ -195,10 +179,7 @@ class ChannelBrandingSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ImageSettings mutable_image() { - Json::Value* storage = MutableStorage("image"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ImageSettings mutable_image(); /** * Determine if the 'watch' attribute was set. @@ -220,10 +201,7 @@ class ChannelBrandingSettings : public client::JsonCppData { /** * Get a reference to the value of the 'watch' attribute. */ - const WatchSettings get_watch() const { - const Json::Value& storage = Storage("watch"); - return client::JsonValueToCppValueHelper(storage); - } + const WatchSettings get_watch() const; /** * Gets a reference to a mutable value of the 'watch' property. @@ -232,10 +210,7 @@ class ChannelBrandingSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - WatchSettings mutable_watch() { - Json::Value* storage = MutableStorage("watch"); - return client::JsonValueToMutableCppValueHelper(storage); - } + WatchSettings mutable_watch(); private: void operator=(const ChannelBrandingSettings&); diff --git a/service_apis/youtube/google/youtube_api/channel_content_details.cc b/service_apis/youtube/google/youtube_api/channel_content_details.cc index 1724863..926578e 100644 --- a/service_apis/youtube/google/youtube_api/channel_content_details.cc +++ b/service_apis/youtube/google/youtube_api/channel_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_content_details.h b/service_apis/youtube/google/youtube_api/channel_content_details.h index 917431a..dffe9fb 100644 --- a/service_apis/youtube/google/youtube_api/channel_content_details.h +++ b/service_apis/youtube/google/youtube_api/channel_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_CONTENT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelContentDetails : public client::JsonCppData { public: - /** * No description provided. * @@ -57,7 +56,6 @@ class ChannelContentDetails : public client::JsonCppData { */ class ChannelContentDetailsRelatedPlaylists : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_content_owner_details.cc b/service_apis/youtube/google/youtube_api/channel_content_owner_details.cc index f3965c9..525686d 100644 --- a/service_apis/youtube/google/youtube_api/channel_content_owner_details.cc +++ b/service_apis/youtube/google/youtube_api/channel_content_owner_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_content_owner_details.h b/service_apis/youtube/google/youtube_api/channel_content_owner_details.h index 956e011..d78852b 100644 --- a/service_apis/youtube/google/youtube_api/channel_content_owner_details.h +++ b/service_apis/youtube/google/youtube_api/channel_content_owner_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_CONTENT_OWNER_DETAILS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_CONTENT_OWNER_DETAILS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ChannelContentOwnerDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_conversion_ping.cc b/service_apis/youtube/google/youtube_api/channel_conversion_ping.cc index 07f86c7..0c2df0f 100644 --- a/service_apis/youtube/google/youtube_api/channel_conversion_ping.cc +++ b/service_apis/youtube/google/youtube_api/channel_conversion_ping.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_conversion_ping.h b/service_apis/youtube/google/youtube_api/channel_conversion_ping.h index d42fe60..5cecac5 100644 --- a/service_apis/youtube/google/youtube_api/channel_conversion_ping.h +++ b/service_apis/youtube/google/youtube_api/channel_conversion_ping.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_CONVERSION_PING_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_CONVERSION_PING_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ChannelConversionPing : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_conversion_pings.cc b/service_apis/youtube/google/youtube_api/channel_conversion_pings.cc index b31cc8d..e0b4198 100644 --- a/service_apis/youtube/google/youtube_api/channel_conversion_pings.cc +++ b/service_apis/youtube/google/youtube_api/channel_conversion_pings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_conversion_pings.h b/service_apis/youtube/google/youtube_api/channel_conversion_pings.h index 7e36576..eda63e1 100644 --- a/service_apis/youtube/google/youtube_api/channel_conversion_pings.h +++ b/service_apis/youtube/google/youtube_api/channel_conversion_pings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_CONVERSION_PINGS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_CONVERSION_PINGS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ChannelConversionPings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -107,10 +106,7 @@ class ChannelConversionPings : public client::JsonCppData { /** * Get a reference to the value of the 'pings' attribute. */ - const client::JsonCppArray get_pings() const { - const Json::Value& storage = Storage("pings"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_pings() const; /** * Gets a reference to a mutable value of the 'pings' property. @@ -121,10 +117,7 @@ class ChannelConversionPings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_pings() { - Json::Value* storage = MutableStorage("pings"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_pings(); private: void operator=(const ChannelConversionPings&); diff --git a/service_apis/youtube/google/youtube_api/channel_id.cc b/service_apis/youtube/google/youtube_api/channel_id.cc new file mode 100644 index 0000000..afcb4c9 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/channel_id.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// ChannelId +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/channel_id.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +ChannelId* ChannelId::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +ChannelId::ChannelId(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +ChannelId::ChannelId(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +ChannelId::~ChannelId() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/channel_id.h b/service_apis/youtube/google/youtube_api/channel_id.h new file mode 100644 index 0000000..060a7ba --- /dev/null +++ b/service_apis/youtube/google/youtube_api/channel_id.h @@ -0,0 +1,125 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_CHANNEL_ID_H_ +#define GOOGLE_YOUTUBE_API_CHANNEL_ID_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class ChannelId : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static ChannelId* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit ChannelId(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit ChannelId(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~ChannelId(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::ChannelId + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::ChannelId"); + } + + /** + * Determine if the 'value' attribute was set. + * + * @return true if the 'value' attribute was set. + */ + bool has_value() const { + return Storage().isMember("value"); + } + + /** + * Clears the 'value' attribute. + */ + void clear_value() { + MutableStorage()->removeMember("value"); + } + + + /** + * Get the value of the 'value' attribute. + */ + const StringPiece get_value() const { + const Json::Value& v = Storage("value"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'value' attribute. + * @param[in] value The new value. + */ + void set_value(const StringPiece& value) { + *MutableStorage("value") = value.data(); + } + + private: + void operator=(const ChannelId&); +}; // ChannelId +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_CHANNEL_ID_H_ diff --git a/service_apis/youtube/google/youtube_api/channel_list_response.cc b/service_apis/youtube/google/youtube_api/channel_list_response.cc index 53af687..2983cad 100644 --- a/service_apis/youtube/google/youtube_api/channel_list_response.cc +++ b/service_apis/youtube/google/youtube_api/channel_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_list_response.h b/service_apis/youtube/google/youtube_api/channel_list_response.h index a799197..ad08a47 100644 --- a/service_apis/youtube/google/youtube_api/channel_list_response.h +++ b/service_apis/youtube/google/youtube_api/channel_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class ChannelListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class ChannelListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class ChannelListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class ChannelListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class ChannelListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/channel_localization.cc b/service_apis/youtube/google/youtube_api/channel_localization.cc index b045a99..18a4690 100644 --- a/service_apis/youtube/google/youtube_api/channel_localization.cc +++ b/service_apis/youtube/google/youtube_api/channel_localization.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_localization.h b/service_apis/youtube/google/youtube_api/channel_localization.h index f0d8dea..fae1434 100644 --- a/service_apis/youtube/google/youtube_api/channel_localization.h +++ b/service_apis/youtube/google/youtube_api/channel_localization.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_LOCALIZATION_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_LOCALIZATION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelLocalization : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -151,7 +150,7 @@ class ChannelLocalization : public client::JsonCppData { /** * Change the 'title' attribute. * - * The localized strings for channel's title, read-only. + * The localized strings for channel's title. * * @param[in] value The new value. */ diff --git a/service_apis/youtube/google/youtube_api/channel_section.cc b/service_apis/youtube/google/youtube_api/channel_section.cc index e6251af..299723b 100644 --- a/service_apis/youtube/google/youtube_api/channel_section.cc +++ b/service_apis/youtube/google/youtube_api/channel_section.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -36,6 +36,7 @@ #include "google/youtube_api/channel_section_content_details.h" #include "google/youtube_api/channel_section_localization.h" #include "google/youtube_api/channel_section_snippet.h" +#include "google/youtube_api/channel_section_targeting.h" #include diff --git a/service_apis/youtube/google/youtube_api/channel_section.h b/service_apis/youtube/google/youtube_api/channel_section.h index 81b28d8..0ffe913 100644 --- a/service_apis/youtube/google/youtube_api/channel_section.h +++ b/service_apis/youtube/google/youtube_api/channel_section.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_H_ @@ -38,6 +38,7 @@ #include "google/youtube_api/channel_section_content_details.h" #include "google/youtube_api/channel_section_localization.h" #include "google/youtube_api/channel_section_snippet.h" +#include "google/youtube_api/channel_section_targeting.h" namespace Json { class Value; @@ -53,7 +54,6 @@ using namespace googleapis; */ class ChannelSection : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -110,10 +110,7 @@ class ChannelSection : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const ChannelSectionContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelSectionContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -124,10 +121,7 @@ class ChannelSection : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelSectionContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelSectionContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -261,10 +255,7 @@ class ChannelSection : public client::JsonCppData { /** * Get a reference to the value of the 'localizations' attribute. */ - const client::JsonCppAssociativeArray get_localizations() const { - const Json::Value& storage = Storage("localizations"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_localizations() const; /** * Gets a reference to a mutable value of the 'localizations' @@ -274,10 +265,7 @@ class ChannelSection : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_localizations() { - Json::Value* storage = MutableStorage("localizations"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_localizations(); /** * Determine if the 'snippet' attribute was set. @@ -299,10 +287,7 @@ class ChannelSection : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const ChannelSectionSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelSectionSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -312,11 +297,41 @@ class ChannelSection : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelSectionSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); + ChannelSectionSnippet mutable_snippet(); + + /** + * Determine if the 'targeting' attribute was set. + * + * @return true if the 'targeting' attribute was set. + */ + bool has_targeting() const { + return Storage().isMember("targeting"); } + /** + * Clears the 'targeting' attribute. + */ + void clear_targeting() { + MutableStorage()->removeMember("targeting"); + } + + + /** + * Get a reference to the value of the 'targeting' attribute. + */ + const ChannelSectionTargeting get_targeting() const; + + /** + * Gets a reference to a mutable value of the 'targeting' + * property. + * + * The targeting object contains basic targeting settings about the channel + * section. + * + * @return The result can be modified to change the attribute value. + */ + ChannelSectionTargeting mutable_targeting(); + private: void operator=(const ChannelSection&); }; // ChannelSection diff --git a/service_apis/youtube/google/youtube_api/channel_section_content_details.cc b/service_apis/youtube/google/youtube_api/channel_section_content_details.cc index 76a27b5..55de102 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_content_details.cc +++ b/service_apis/youtube/google/youtube_api/channel_section_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_section_content_details.h b/service_apis/youtube/google/youtube_api/channel_section_content_details.h index 7865109..15a1e0e 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_content_details.h +++ b/service_apis/youtube/google/youtube_api/channel_section_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_CONTENT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelSectionContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_section_list_response.cc b/service_apis/youtube/google/youtube_api/channel_section_list_response.cc index a20e71d..49cc2ed 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_list_response.cc +++ b/service_apis/youtube/google/youtube_api/channel_section_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_section_list_response.h b/service_apis/youtube/google/youtube_api/channel_section_list_response.h index 33940d4..a73ab01 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_list_response.h +++ b/service_apis/youtube/google/youtube_api/channel_section_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_LIST_RESPONSE_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ChannelSectionListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class ChannelSectionListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -193,10 +189,7 @@ class ChannelSectionListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/channel_section_localization.cc b/service_apis/youtube/google/youtube_api/channel_section_localization.cc index f4ee6ef..6c9d519 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_localization.cc +++ b/service_apis/youtube/google/youtube_api/channel_section_localization.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_section_localization.h b/service_apis/youtube/google/youtube_api/channel_section_localization.h index b29d58a..45a7609 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_localization.h +++ b/service_apis/youtube/google/youtube_api/channel_section_localization.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_LOCALIZATION_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_LOCALIZATION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelSectionLocalization : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_section_snippet.cc b/service_apis/youtube/google/youtube_api/channel_section_snippet.cc index bbd8e9c..ddf5be4 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_snippet.cc +++ b/service_apis/youtube/google/youtube_api/channel_section_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_section_snippet.h b/service_apis/youtube/google/youtube_api/channel_section_snippet.h index bfa8fa6..f16b8c1 100644 --- a/service_apis/youtube/google/youtube_api/channel_section_snippet.h +++ b/service_apis/youtube/google/youtube_api/channel_section_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_SNIPPET_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class ChannelSectionSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class ChannelSectionSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'localized' attribute. */ - const ChannelSectionLocalization get_localized() const { - const Json::Value& storage = Storage("localized"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelSectionLocalization get_localized() const; /** * Gets a reference to a mutable value of the 'localized' @@ -196,10 +192,7 @@ class ChannelSectionSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelSectionLocalization mutable_localized() { - Json::Value* storage = MutableStorage("localized"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelSectionLocalization mutable_localized(); /** * Determine if the 'position' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/channel_section_targeting.cc b/service_apis/youtube/google/youtube_api/channel_section_targeting.cc new file mode 100644 index 0000000..5f12d2a --- /dev/null +++ b/service_apis/youtube/google/youtube_api/channel_section_targeting.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// ChannelSectionTargeting +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/channel_section_targeting.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +ChannelSectionTargeting* ChannelSectionTargeting::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +ChannelSectionTargeting::ChannelSectionTargeting(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +ChannelSectionTargeting::ChannelSectionTargeting(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +ChannelSectionTargeting::~ChannelSectionTargeting() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/channel_section_targeting.h b/service_apis/youtube/google/youtube_api/channel_section_targeting.h new file mode 100644 index 0000000..598a071 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/channel_section_targeting.h @@ -0,0 +1,204 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_CHANNEL_SECTION_TARGETING_H_ +#define GOOGLE_YOUTUBE_API_CHANNEL_SECTION_TARGETING_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * ChannelSection targeting setting. + * + * @ingroup DataObject + */ +class ChannelSectionTargeting : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static ChannelSectionTargeting* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit ChannelSectionTargeting(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit ChannelSectionTargeting(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~ChannelSectionTargeting(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::ChannelSectionTargeting + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::ChannelSectionTargeting"); + } + + /** + * Determine if the 'countries' attribute was set. + * + * @return true if the 'countries' attribute was set. + */ + bool has_countries() const { + return Storage().isMember("countries"); + } + + /** + * Clears the 'countries' attribute. + */ + void clear_countries() { + MutableStorage()->removeMember("countries"); + } + + + /** + * Get a reference to the value of the 'countries' attribute. + */ + const client::JsonCppArray get_countries() const { + const Json::Value& storage = Storage("countries"); + return client::JsonValueToCppValueHelper >(storage); + } + + /** + * Gets a reference to a mutable value of the 'countries' + * property. + * + * The country the channel section is targeting. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_countries() { + Json::Value* storage = MutableStorage("countries"); + return client::JsonValueToMutableCppValueHelper >(storage); + } + + /** + * Determine if the 'languages' attribute was set. + * + * @return true if the 'languages' attribute was set. + */ + bool has_languages() const { + return Storage().isMember("languages"); + } + + /** + * Clears the 'languages' attribute. + */ + void clear_languages() { + MutableStorage()->removeMember("languages"); + } + + + /** + * Get a reference to the value of the 'languages' attribute. + */ + const client::JsonCppArray get_languages() const { + const Json::Value& storage = Storage("languages"); + return client::JsonValueToCppValueHelper >(storage); + } + + /** + * Gets a reference to a mutable value of the 'languages' + * property. + * + * The language the channel section is targeting. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_languages() { + Json::Value* storage = MutableStorage("languages"); + return client::JsonValueToMutableCppValueHelper >(storage); + } + + /** + * Determine if the 'regions' attribute was set. + * + * @return true if the 'regions' attribute was set. + */ + bool has_regions() const { + return Storage().isMember("regions"); + } + + /** + * Clears the 'regions' attribute. + */ + void clear_regions() { + MutableStorage()->removeMember("regions"); + } + + + /** + * Get a reference to the value of the 'regions' attribute. + */ + const client::JsonCppArray get_regions() const { + const Json::Value& storage = Storage("regions"); + return client::JsonValueToCppValueHelper >(storage); + } + + /** + * Gets a reference to a mutable value of the 'regions' property. + * + * The region the channel section is targeting. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_regions() { + Json::Value* storage = MutableStorage("regions"); + return client::JsonValueToMutableCppValueHelper >(storage); + } + + private: + void operator=(const ChannelSectionTargeting&); +}; // ChannelSectionTargeting +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_CHANNEL_SECTION_TARGETING_H_ diff --git a/service_apis/youtube/google/youtube_api/channel_settings.cc b/service_apis/youtube/google/youtube_api/channel_settings.cc index da48da2..430bbe6 100644 --- a/service_apis/youtube/google/youtube_api/channel_settings.cc +++ b/service_apis/youtube/google/youtube_api/channel_settings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_settings.h b/service_apis/youtube/google/youtube_api/channel_settings.h index b801b76..e62f033 100644 --- a/service_apis/youtube/google/youtube_api/channel_settings.h +++ b/service_apis/youtube/google/youtube_api/channel_settings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SETTINGS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SETTINGS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelSettings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -85,6 +84,43 @@ class ChannelSettings : public client::JsonCppData { return StringPiece("google_youtube_api::ChannelSettings"); } + /** + * Determine if the 'country' attribute was set. + * + * @return true if the 'country' attribute was set. + */ + bool has_country() const { + return Storage().isMember("country"); + } + + /** + * Clears the 'country' attribute. + */ + void clear_country() { + MutableStorage()->removeMember("country"); + } + + + /** + * Get the value of the 'country' attribute. + */ + const StringPiece get_country() const { + const Json::Value& v = Storage("country"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'country' attribute. + * + * The country of the channel. + * + * @param[in] value The new value. + */ + void set_country(const StringPiece& value) { + *MutableStorage("country") = value.data(); + } + /** * Determine if the 'defaultLanguage' attribute was set. * diff --git a/service_apis/youtube/google/youtube_api/channel_snippet.cc b/service_apis/youtube/google/youtube_api/channel_snippet.cc index 684bbdd..189ecb0 100644 --- a/service_apis/youtube/google/youtube_api/channel_snippet.cc +++ b/service_apis/youtube/google/youtube_api/channel_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_snippet.h b/service_apis/youtube/google/youtube_api/channel_snippet.h index 2ab75a9..409dfff 100644 --- a/service_apis/youtube/google/youtube_api/channel_snippet.h +++ b/service_apis/youtube/google/youtube_api/channel_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_SNIPPET_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class ChannelSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -89,6 +88,43 @@ class ChannelSnippet : public client::JsonCppData { return StringPiece("google_youtube_api::ChannelSnippet"); } + /** + * Determine if the 'country' attribute was set. + * + * @return true if the 'country' attribute was set. + */ + bool has_country() const { + return Storage().isMember("country"); + } + + /** + * Clears the 'country' attribute. + */ + void clear_country() { + MutableStorage()->removeMember("country"); + } + + + /** + * Get the value of the 'country' attribute. + */ + const StringPiece get_country() const { + const Json::Value& v = Storage("country"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'country' attribute. + * + * The country of the channel. + * + * @param[in] value The new value. + */ + void set_country(const StringPiece& value) { + *MutableStorage("country") = value.data(); + } + /** * Determine if the 'defaultLanguage' attribute was set. * @@ -183,10 +219,7 @@ class ChannelSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'localized' attribute. */ - const ChannelLocalization get_localized() const { - const Json::Value& storage = Storage("localized"); - return client::JsonValueToCppValueHelper(storage); - } + const ChannelLocalization get_localized() const; /** * Gets a reference to a mutable value of the 'localized' @@ -196,10 +229,7 @@ class ChannelSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ChannelLocalization mutable_localized() { - Json::Value* storage = MutableStorage("localized"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ChannelLocalization mutable_localized(); /** * Determine if the 'publishedAt' attribute was set. @@ -259,10 +289,7 @@ class ChannelSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -274,10 +301,7 @@ class ChannelSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/channel_statistics.cc b/service_apis/youtube/google/youtube_api/channel_statistics.cc index eb6bd6f..3c87fd6 100644 --- a/service_apis/youtube/google/youtube_api/channel_statistics.cc +++ b/service_apis/youtube/google/youtube_api/channel_statistics.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_statistics.h b/service_apis/youtube/google/youtube_api/channel_statistics.h index 0de255f..ffb25d3 100644 --- a/service_apis/youtube/google/youtube_api/channel_statistics.h +++ b/service_apis/youtube/google/youtube_api/channel_statistics.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_STATISTICS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_STATISTICS_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ChannelStatistics : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_status.cc b/service_apis/youtube/google/youtube_api/channel_status.cc index af7b63a..bc8613a 100644 --- a/service_apis/youtube/google/youtube_api/channel_status.cc +++ b/service_apis/youtube/google/youtube_api/channel_status.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_status.h b/service_apis/youtube/google/youtube_api/channel_status.h index 8712b5c..a9e805d 100644 --- a/service_apis/youtube/google/youtube_api/channel_status.h +++ b/service_apis/youtube/google/youtube_api/channel_status.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_STATUS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_STATUS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelStatus : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/channel_topic_details.cc b/service_apis/youtube/google/youtube_api/channel_topic_details.cc index b690f08..f803bfa 100644 --- a/service_apis/youtube/google/youtube_api/channel_topic_details.cc +++ b/service_apis/youtube/google/youtube_api/channel_topic_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/channel_topic_details.h b/service_apis/youtube/google/youtube_api/channel_topic_details.h index 251308b..2871393 100644 --- a/service_apis/youtube/google/youtube_api/channel_topic_details.h +++ b/service_apis/youtube/google/youtube_api/channel_topic_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CHANNEL_TOPIC_DETAILS_H_ #define GOOGLE_YOUTUBE_API_CHANNEL_TOPIC_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ChannelTopicDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/comment.cc b/service_apis/youtube/google/youtube_api/comment.cc new file mode 100644 index 0000000..0a758c2 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// Comment +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_snippet.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +Comment* Comment::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +Comment::Comment(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +Comment::Comment(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +Comment::~Comment() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment.h b/service_apis/youtube/google/youtube_api/comment.h new file mode 100644 index 0000000..d106c9b --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment.h @@ -0,0 +1,236 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_snippet.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * A comment represents a single YouTube comment. + * + * @ingroup DataObject + */ +class Comment : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static Comment* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit Comment(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit Comment(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~Comment(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::Comment + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::Comment"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'id' attribute was set. + * + * @return true if the 'id' attribute was set. + */ + bool has_id() const { + return Storage().isMember("id"); + } + + /** + * Clears the 'id' attribute. + */ + void clear_id() { + MutableStorage()->removeMember("id"); + } + + + /** + * Get the value of the 'id' attribute. + */ + const StringPiece get_id() const { + const Json::Value& v = Storage("id"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'id' attribute. + * + * The ID that YouTube uses to uniquely identify the comment. + * + * @param[in] value The new value. + */ + void set_id(const StringPiece& value) { + *MutableStorage("id") = value.data(); + } + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#comment". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'snippet' attribute was set. + * + * @return true if the 'snippet' attribute was set. + */ + bool has_snippet() const { + return Storage().isMember("snippet"); + } + + /** + * Clears the 'snippet' attribute. + */ + void clear_snippet() { + MutableStorage()->removeMember("snippet"); + } + + + /** + * Get a reference to the value of the 'snippet' attribute. + */ + const CommentSnippet get_snippet() const; + + /** + * Gets a reference to a mutable value of the 'snippet' property. + * + * The snippet object contains basic details about the comment. + * + * @return The result can be modified to change the attribute value. + */ + CommentSnippet mutable_snippet(); + + private: + void operator=(const Comment&); +}; // Comment +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_list_response.cc b/service_apis/youtube/google/youtube_api/comment_list_response.cc new file mode 100644 index 0000000..c7a2e9d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_list_response.cc @@ -0,0 +1,66 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentListResponse +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_list_response.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" +#include "google/youtube_api/page_info.h" +#include "google/youtube_api/token_pagination.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentListResponse* CommentListResponse::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentListResponse::CommentListResponse(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentListResponse::CommentListResponse(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentListResponse::~CommentListResponse() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_list_response.h b/service_apis/youtube/google/youtube_api/comment_list_response.h new file mode 100644 index 0000000..750643e --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_list_response.h @@ -0,0 +1,372 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_LIST_RESPONSE_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_LIST_RESPONSE_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" +#include "google/youtube_api/page_info.h" +#include "google/youtube_api/token_pagination.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class CommentListResponse : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentListResponse* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentListResponse(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentListResponse(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentListResponse(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentListResponse + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentListResponse"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'eventId' attribute was set. + * + * @return true if the 'eventId' attribute was set. + */ + bool has_event_id() const { + return Storage().isMember("eventId"); + } + + /** + * Clears the 'eventId' attribute. + */ + void clear_event_id() { + MutableStorage()->removeMember("eventId"); + } + + + /** + * Get the value of the 'eventId' attribute. + */ + const StringPiece get_event_id() const { + const Json::Value& v = Storage("eventId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'eventId' attribute. + * + * Serialized EventId of the request which produced this response. + * + * @param[in] value The new value. + */ + void set_event_id(const StringPiece& value) { + *MutableStorage("eventId") = value.data(); + } + + /** + * Determine if the 'items' attribute was set. + * + * @return true if the 'items' attribute was set. + */ + bool has_items() const { + return Storage().isMember("items"); + } + + /** + * Clears the 'items' attribute. + */ + void clear_items() { + MutableStorage()->removeMember("items"); + } + + + /** + * Get a reference to the value of the 'items' attribute. + */ + const client::JsonCppArray get_items() const; + + /** + * Gets a reference to a mutable value of the 'items' property. + * + * A list of comments that match the request criteria. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_items(); + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#commentListResponse". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'nextPageToken' attribute was set. + * + * @return true if the 'nextPageToken' attribute was set. + */ + bool has_next_page_token() const { + return Storage().isMember("nextPageToken"); + } + + /** + * Clears the 'nextPageToken' attribute. + */ + void clear_next_page_token() { + MutableStorage()->removeMember("nextPageToken"); + } + + + /** + * Get the value of the 'nextPageToken' attribute. + */ + const StringPiece get_next_page_token() const { + const Json::Value& v = Storage("nextPageToken"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'nextPageToken' attribute. + * + * The token that can be used as the value of the pageToken parameter to + * retrieve the next page in the result set. + * + * @param[in] value The new value. + */ + void set_next_page_token(const StringPiece& value) { + *MutableStorage("nextPageToken") = value.data(); + } + + /** + * Determine if the 'pageInfo' attribute was set. + * + * @return true if the 'pageInfo' attribute was set. + */ + bool has_page_info() const { + return Storage().isMember("pageInfo"); + } + + /** + * Clears the 'pageInfo' attribute. + */ + void clear_page_info() { + MutableStorage()->removeMember("pageInfo"); + } + + + /** + * Get a reference to the value of the 'pageInfo' attribute. + */ + const PageInfo get_page_info() const; + + /** + * Gets a reference to a mutable value of the 'pageInfo' + * property. + * @return The result can be modified to change the attribute value. + */ + PageInfo mutable_pageInfo(); + + /** + * Determine if the 'tokenPagination' attribute was set. + * + * @return true if the 'tokenPagination' attribute was set. + */ + bool has_token_pagination() const { + return Storage().isMember("tokenPagination"); + } + + /** + * Clears the 'tokenPagination' attribute. + */ + void clear_token_pagination() { + MutableStorage()->removeMember("tokenPagination"); + } + + + /** + * Get a reference to the value of the 'tokenPagination' + * attribute. + */ + const TokenPagination get_token_pagination() const; + + /** + * Gets a reference to a mutable value of the 'tokenPagination' + * property. + * @return The result can be modified to change the attribute value. + */ + TokenPagination mutable_tokenPagination(); + + /** + * Determine if the 'visitorId' attribute was set. + * + * @return true if the 'visitorId' attribute was set. + */ + bool has_visitor_id() const { + return Storage().isMember("visitorId"); + } + + /** + * Clears the 'visitorId' attribute. + */ + void clear_visitor_id() { + MutableStorage()->removeMember("visitorId"); + } + + + /** + * Get the value of the 'visitorId' attribute. + */ + const StringPiece get_visitor_id() const { + const Json::Value& v = Storage("visitorId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'visitorId' attribute. + * + * The visitorId identifies the visitor. + * + * @param[in] value The new value. + */ + void set_visitor_id(const StringPiece& value) { + *MutableStorage("visitorId") = value.data(); + } + + private: + void operator=(const CommentListResponse&); +}; // CommentListResponse +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_LIST_RESPONSE_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_snippet.cc b/service_apis/youtube/google/youtube_api/comment_snippet.cc new file mode 100644 index 0000000..bd6f901 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_snippet.cc @@ -0,0 +1,66 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentSnippet +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_snippet.h" +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/client/util/date_time.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/channel_id.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentSnippet* CommentSnippet::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentSnippet::CommentSnippet(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentSnippet::CommentSnippet(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentSnippet::~CommentSnippet() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_snippet.h b/service_apis/youtube/google/youtube_api/comment_snippet.h new file mode 100644 index 0000000..d36bf70 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_snippet.h @@ -0,0 +1,697 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_SNIPPET_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_SNIPPET_H_ + +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/client/util/date_time.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/channel_id.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Basic details about a comment, such as its author and text. + * + * @ingroup DataObject + */ +class CommentSnippet : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentSnippet* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentSnippet(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentSnippet(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentSnippet(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentSnippet + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentSnippet"); + } + + /** + * Determine if the 'authorChannelId' attribute was set. + * + * @return true if the 'authorChannelId' attribute was set. + */ + bool has_author_channel_id() const { + return Storage().isMember("authorChannelId"); + } + + /** + * Clears the 'authorChannelId' attribute. + */ + void clear_author_channel_id() { + MutableStorage()->removeMember("authorChannelId"); + } + + + /** + * Get a reference to the value of the 'authorChannelId' + * attribute. + */ + const ChannelId get_author_channel_id() const; + + /** + * Gets a reference to a mutable value of the 'authorChannelId' + * property. + * + * The id of the author's YouTube channel, if any. + * + * @return The result can be modified to change the attribute value. + */ + ChannelId mutable_authorChannelId(); + + /** + * Determine if the 'authorChannelUrl' attribute was set. + * + * @return true if the 'authorChannelUrl' attribute was set. + */ + bool has_author_channel_url() const { + return Storage().isMember("authorChannelUrl"); + } + + /** + * Clears the 'authorChannelUrl' attribute. + */ + void clear_author_channel_url() { + MutableStorage()->removeMember("authorChannelUrl"); + } + + + /** + * Get the value of the 'authorChannelUrl' attribute. + */ + const StringPiece get_author_channel_url() const { + const Json::Value& v = Storage("authorChannelUrl"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'authorChannelUrl' attribute. + * + * Link to the author's YouTube channel, if any. + * + * @param[in] value The new value. + */ + void set_author_channel_url(const StringPiece& value) { + *MutableStorage("authorChannelUrl") = value.data(); + } + + /** + * Determine if the 'authorDisplayName' attribute was set. + * + * @return true if the 'authorDisplayName' attribute was set. + */ + bool has_author_display_name() const { + return Storage().isMember("authorDisplayName"); + } + + /** + * Clears the 'authorDisplayName' attribute. + */ + void clear_author_display_name() { + MutableStorage()->removeMember("authorDisplayName"); + } + + + /** + * Get the value of the 'authorDisplayName' attribute. + */ + const StringPiece get_author_display_name() const { + const Json::Value& v = Storage("authorDisplayName"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'authorDisplayName' attribute. + * + * The name of the user who posted the comment. + * + * @param[in] value The new value. + */ + void set_author_display_name(const StringPiece& value) { + *MutableStorage("authorDisplayName") = value.data(); + } + + /** + * Determine if the 'authorGoogleplusProfileUrl' attribute was + * set. + * + * @return true if the 'authorGoogleplusProfileUrl' attribute was + * set. + */ + bool has_author_googleplus_profile_url() const { + return Storage().isMember("authorGoogleplusProfileUrl"); + } + + /** + * Clears the 'authorGoogleplusProfileUrl' attribute. + */ + void clear_author_googleplus_profile_url() { + MutableStorage()->removeMember("authorGoogleplusProfileUrl"); + } + + + /** + * Get the value of the 'authorGoogleplusProfileUrl' attribute. + */ + const StringPiece get_author_googleplus_profile_url() const { + const Json::Value& v = Storage("authorGoogleplusProfileUrl"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'authorGoogleplusProfileUrl' attribute. + * + * Link to the author's Google+ profile, if any. + * + * @param[in] value The new value. + */ + void set_author_googleplus_profile_url(const StringPiece& value) { + *MutableStorage("authorGoogleplusProfileUrl") = value.data(); + } + + /** + * Determine if the 'authorProfileImageUrl' attribute was set. + * + * @return true if the 'authorProfileImageUrl' attribute was set. + */ + bool has_author_profile_image_url() const { + return Storage().isMember("authorProfileImageUrl"); + } + + /** + * Clears the 'authorProfileImageUrl' attribute. + */ + void clear_author_profile_image_url() { + MutableStorage()->removeMember("authorProfileImageUrl"); + } + + + /** + * Get the value of the 'authorProfileImageUrl' attribute. + */ + const StringPiece get_author_profile_image_url() const { + const Json::Value& v = Storage("authorProfileImageUrl"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'authorProfileImageUrl' attribute. + * + * The URL for the avatar of the user who posted the comment. + * + * @param[in] value The new value. + */ + void set_author_profile_image_url(const StringPiece& value) { + *MutableStorage("authorProfileImageUrl") = value.data(); + } + + /** + * Determine if the 'canRate' attribute was set. + * + * @return true if the 'canRate' attribute was set. + */ + bool has_can_rate() const { + return Storage().isMember("canRate"); + } + + /** + * Clears the 'canRate' attribute. + */ + void clear_can_rate() { + MutableStorage()->removeMember("canRate"); + } + + + /** + * Get the value of the 'canRate' attribute. + */ + bool get_can_rate() const { + const Json::Value& storage = Storage("canRate"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'canRate' attribute. + * + * Whether the current viewer can rate this comment. + * + * @param[in] value The new value. + */ + void set_can_rate(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("canRate")); + } + + /** + * Determine if the 'channelId' attribute was set. + * + * @return true if the 'channelId' attribute was set. + */ + bool has_channel_id() const { + return Storage().isMember("channelId"); + } + + /** + * Clears the 'channelId' attribute. + */ + void clear_channel_id() { + MutableStorage()->removeMember("channelId"); + } + + + /** + * Get the value of the 'channelId' attribute. + */ + const StringPiece get_channel_id() const { + const Json::Value& v = Storage("channelId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'channelId' attribute. + * + * The id of the corresponding YouTube channel. In case of a channel comment + * this is the channel the comment refers to. In case of a video comment it's + * the video's channel. + * + * @param[in] value The new value. + */ + void set_channel_id(const StringPiece& value) { + *MutableStorage("channelId") = value.data(); + } + + /** + * Determine if the 'likeCount' attribute was set. + * + * @return true if the 'likeCount' attribute was set. + */ + bool has_like_count() const { + return Storage().isMember("likeCount"); + } + + /** + * Clears the 'likeCount' attribute. + */ + void clear_like_count() { + MutableStorage()->removeMember("likeCount"); + } + + + /** + * Get the value of the 'likeCount' attribute. + */ + uint32 get_like_count() const { + const Json::Value& storage = Storage("likeCount"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'likeCount' attribute. + * + * The total number of likes this comment has received. + * + * @param[in] value The new value. + */ + void set_like_count(uint32 value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("likeCount")); + } + + /** + * Determine if the 'moderationStatus' attribute was set. + * + * @return true if the 'moderationStatus' attribute was set. + */ + bool has_moderation_status() const { + return Storage().isMember("moderationStatus"); + } + + /** + * Clears the 'moderationStatus' attribute. + */ + void clear_moderation_status() { + MutableStorage()->removeMember("moderationStatus"); + } + + + /** + * Get the value of the 'moderationStatus' attribute. + */ + const StringPiece get_moderation_status() const { + const Json::Value& v = Storage("moderationStatus"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'moderationStatus' attribute. + * + * The comment's moderation status. Will not be set if the comments were + * requested through the id filter. + * + * @param[in] value The new value. + */ + void set_moderation_status(const StringPiece& value) { + *MutableStorage("moderationStatus") = value.data(); + } + + /** + * Determine if the 'parentId' attribute was set. + * + * @return true if the 'parentId' attribute was set. + */ + bool has_parent_id() const { + return Storage().isMember("parentId"); + } + + /** + * Clears the 'parentId' attribute. + */ + void clear_parent_id() { + MutableStorage()->removeMember("parentId"); + } + + + /** + * Get the value of the 'parentId' attribute. + */ + const StringPiece get_parent_id() const { + const Json::Value& v = Storage("parentId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'parentId' attribute. + * + * The unique id of the parent comment, only set for replies. + * + * @param[in] value The new value. + */ + void set_parent_id(const StringPiece& value) { + *MutableStorage("parentId") = value.data(); + } + + /** + * Determine if the 'publishedAt' attribute was set. + * + * @return true if the 'publishedAt' attribute was set. + */ + bool has_published_at() const { + return Storage().isMember("publishedAt"); + } + + /** + * Clears the 'publishedAt' attribute. + */ + void clear_published_at() { + MutableStorage()->removeMember("publishedAt"); + } + + + /** + * Get the value of the 'publishedAt' attribute. + */ + client::DateTime get_published_at() const { + const Json::Value& storage = Storage("publishedAt"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'publishedAt' attribute. + * + * The date and time when the comment was orignally published. The value is + * specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. + * + * @param[in] value The new value. + */ + void set_published_at(client::DateTime value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("publishedAt")); + } + + /** + * Determine if the 'textDisplay' attribute was set. + * + * @return true if the 'textDisplay' attribute was set. + */ + bool has_text_display() const { + return Storage().isMember("textDisplay"); + } + + /** + * Clears the 'textDisplay' attribute. + */ + void clear_text_display() { + MutableStorage()->removeMember("textDisplay"); + } + + + /** + * Get the value of the 'textDisplay' attribute. + */ + const StringPiece get_text_display() const { + const Json::Value& v = Storage("textDisplay"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'textDisplay' attribute. + * + * The comment's text. The format is either plain text or HTML dependent on + * what has been requested. Even the plain text representation may differ from + * the text originally posted in that it may replace video links with video + * titles etc. + * + * @param[in] value The new value. + */ + void set_text_display(const StringPiece& value) { + *MutableStorage("textDisplay") = value.data(); + } + + /** + * Determine if the 'textOriginal' attribute was set. + * + * @return true if the 'textOriginal' attribute was set. + */ + bool has_text_original() const { + return Storage().isMember("textOriginal"); + } + + /** + * Clears the 'textOriginal' attribute. + */ + void clear_text_original() { + MutableStorage()->removeMember("textOriginal"); + } + + + /** + * Get the value of the 'textOriginal' attribute. + */ + const StringPiece get_text_original() const { + const Json::Value& v = Storage("textOriginal"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'textOriginal' attribute. + * + * The comment's original raw text as initially posted or last updated. The + * original text will only be returned if it is accessible to the viewer, + * which is only guaranteed if the viewer is the comment's author. + * + * @param[in] value The new value. + */ + void set_text_original(const StringPiece& value) { + *MutableStorage("textOriginal") = value.data(); + } + + /** + * Determine if the 'updatedAt' attribute was set. + * + * @return true if the 'updatedAt' attribute was set. + */ + bool has_updated_at() const { + return Storage().isMember("updatedAt"); + } + + /** + * Clears the 'updatedAt' attribute. + */ + void clear_updated_at() { + MutableStorage()->removeMember("updatedAt"); + } + + + /** + * Get the value of the 'updatedAt' attribute. + */ + client::DateTime get_updated_at() const { + const Json::Value& storage = Storage("updatedAt"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'updatedAt' attribute. + * + * The date and time when was last updated . The value is specified in ISO + * 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. + * + * @param[in] value The new value. + */ + void set_updated_at(client::DateTime value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("updatedAt")); + } + + /** + * Determine if the 'videoId' attribute was set. + * + * @return true if the 'videoId' attribute was set. + */ + bool has_video_id() const { + return Storage().isMember("videoId"); + } + + /** + * Clears the 'videoId' attribute. + */ + void clear_video_id() { + MutableStorage()->removeMember("videoId"); + } + + + /** + * Get the value of the 'videoId' attribute. + */ + const StringPiece get_video_id() const { + const Json::Value& v = Storage("videoId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'videoId' attribute. + * + * The ID of the video the comment refers to, if any. + * + * @param[in] value The new value. + */ + void set_video_id(const StringPiece& value) { + *MutableStorage("videoId") = value.data(); + } + + /** + * Determine if the 'viewerRating' attribute was set. + * + * @return true if the 'viewerRating' attribute was set. + */ + bool has_viewer_rating() const { + return Storage().isMember("viewerRating"); + } + + /** + * Clears the 'viewerRating' attribute. + */ + void clear_viewer_rating() { + MutableStorage()->removeMember("viewerRating"); + } + + + /** + * Get the value of the 'viewerRating' attribute. + */ + const StringPiece get_viewer_rating() const { + const Json::Value& v = Storage("viewerRating"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'viewerRating' attribute. + * + * The rating the viewer has given to this comment. For the time being this + * will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This + * may change in the future. + * + * @param[in] value The new value. + */ + void set_viewer_rating(const StringPiece& value) { + *MutableStorage("viewerRating") = value.data(); + } + + private: + void operator=(const CommentSnippet&); +}; // CommentSnippet +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_SNIPPET_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_thread.cc b/service_apis/youtube/google/youtube_api/comment_thread.cc new file mode 100644 index 0000000..d8744cc --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread.cc @@ -0,0 +1,65 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentThread +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_thread.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_thread_replies.h" +#include "google/youtube_api/comment_thread_snippet.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentThread* CommentThread::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentThread::CommentThread(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentThread::CommentThread(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentThread::~CommentThread() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_thread.h b/service_apis/youtube/google/youtube_api/comment_thread.h new file mode 100644 index 0000000..b08dce6 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread.h @@ -0,0 +1,272 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_THREAD_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_THREAD_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_thread_replies.h" +#include "google/youtube_api/comment_thread_snippet.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * A comment thread represents information that applies to a top level comment + * and all its replies. It can also include the top level comment itself and + * some of the replies. + * + * @ingroup DataObject + */ +class CommentThread : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentThread* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThread(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThread(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentThread(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentThread + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentThread"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'id' attribute was set. + * + * @return true if the 'id' attribute was set. + */ + bool has_id() const { + return Storage().isMember("id"); + } + + /** + * Clears the 'id' attribute. + */ + void clear_id() { + MutableStorage()->removeMember("id"); + } + + + /** + * Get the value of the 'id' attribute. + */ + const StringPiece get_id() const { + const Json::Value& v = Storage("id"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'id' attribute. + * + * The ID that YouTube uses to uniquely identify the comment thread. + * + * @param[in] value The new value. + */ + void set_id(const StringPiece& value) { + *MutableStorage("id") = value.data(); + } + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#commentThread". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'replies' attribute was set. + * + * @return true if the 'replies' attribute was set. + */ + bool has_replies() const { + return Storage().isMember("replies"); + } + + /** + * Clears the 'replies' attribute. + */ + void clear_replies() { + MutableStorage()->removeMember("replies"); + } + + + /** + * Get a reference to the value of the 'replies' attribute. + */ + const CommentThreadReplies get_replies() const; + + /** + * Gets a reference to a mutable value of the 'replies' property. + * + * The replies object contains a limited number of replies (if any) to the top + * level comment found in the snippet. + * + * @return The result can be modified to change the attribute value. + */ + CommentThreadReplies mutable_replies(); + + /** + * Determine if the 'snippet' attribute was set. + * + * @return true if the 'snippet' attribute was set. + */ + bool has_snippet() const { + return Storage().isMember("snippet"); + } + + /** + * Clears the 'snippet' attribute. + */ + void clear_snippet() { + MutableStorage()->removeMember("snippet"); + } + + + /** + * Get a reference to the value of the 'snippet' attribute. + */ + const CommentThreadSnippet get_snippet() const; + + /** + * Gets a reference to a mutable value of the 'snippet' property. + * + * The snippet object contains basic details about the comment thread and also + * the top level comment. + * + * @return The result can be modified to change the attribute value. + */ + CommentThreadSnippet mutable_snippet(); + + private: + void operator=(const CommentThread&); +}; // CommentThread +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_THREAD_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_thread_list_response.cc b/service_apis/youtube/google/youtube_api/comment_thread_list_response.cc new file mode 100644 index 0000000..64f9a15 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_list_response.cc @@ -0,0 +1,66 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentThreadListResponse +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_thread_list_response.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_thread.h" +#include "google/youtube_api/page_info.h" +#include "google/youtube_api/token_pagination.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentThreadListResponse* CommentThreadListResponse::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentThreadListResponse::CommentThreadListResponse(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentThreadListResponse::CommentThreadListResponse(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentThreadListResponse::~CommentThreadListResponse() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_thread_list_response.h b/service_apis/youtube/google/youtube_api/comment_thread_list_response.h new file mode 100644 index 0000000..d831038 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_list_response.h @@ -0,0 +1,372 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_THREAD_LIST_RESPONSE_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_THREAD_LIST_RESPONSE_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment_thread.h" +#include "google/youtube_api/page_info.h" +#include "google/youtube_api/token_pagination.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class CommentThreadListResponse : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentThreadListResponse* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadListResponse(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadListResponse(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentThreadListResponse(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentThreadListResponse + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentThreadListResponse"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'eventId' attribute was set. + * + * @return true if the 'eventId' attribute was set. + */ + bool has_event_id() const { + return Storage().isMember("eventId"); + } + + /** + * Clears the 'eventId' attribute. + */ + void clear_event_id() { + MutableStorage()->removeMember("eventId"); + } + + + /** + * Get the value of the 'eventId' attribute. + */ + const StringPiece get_event_id() const { + const Json::Value& v = Storage("eventId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'eventId' attribute. + * + * Serialized EventId of the request which produced this response. + * + * @param[in] value The new value. + */ + void set_event_id(const StringPiece& value) { + *MutableStorage("eventId") = value.data(); + } + + /** + * Determine if the 'items' attribute was set. + * + * @return true if the 'items' attribute was set. + */ + bool has_items() const { + return Storage().isMember("items"); + } + + /** + * Clears the 'items' attribute. + */ + void clear_items() { + MutableStorage()->removeMember("items"); + } + + + /** + * Get a reference to the value of the 'items' attribute. + */ + const client::JsonCppArray get_items() const; + + /** + * Gets a reference to a mutable value of the 'items' property. + * + * A list of comment threads that match the request criteria. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_items(); + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#commentThreadListResponse". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'nextPageToken' attribute was set. + * + * @return true if the 'nextPageToken' attribute was set. + */ + bool has_next_page_token() const { + return Storage().isMember("nextPageToken"); + } + + /** + * Clears the 'nextPageToken' attribute. + */ + void clear_next_page_token() { + MutableStorage()->removeMember("nextPageToken"); + } + + + /** + * Get the value of the 'nextPageToken' attribute. + */ + const StringPiece get_next_page_token() const { + const Json::Value& v = Storage("nextPageToken"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'nextPageToken' attribute. + * + * The token that can be used as the value of the pageToken parameter to + * retrieve the next page in the result set. + * + * @param[in] value The new value. + */ + void set_next_page_token(const StringPiece& value) { + *MutableStorage("nextPageToken") = value.data(); + } + + /** + * Determine if the 'pageInfo' attribute was set. + * + * @return true if the 'pageInfo' attribute was set. + */ + bool has_page_info() const { + return Storage().isMember("pageInfo"); + } + + /** + * Clears the 'pageInfo' attribute. + */ + void clear_page_info() { + MutableStorage()->removeMember("pageInfo"); + } + + + /** + * Get a reference to the value of the 'pageInfo' attribute. + */ + const PageInfo get_page_info() const; + + /** + * Gets a reference to a mutable value of the 'pageInfo' + * property. + * @return The result can be modified to change the attribute value. + */ + PageInfo mutable_pageInfo(); + + /** + * Determine if the 'tokenPagination' attribute was set. + * + * @return true if the 'tokenPagination' attribute was set. + */ + bool has_token_pagination() const { + return Storage().isMember("tokenPagination"); + } + + /** + * Clears the 'tokenPagination' attribute. + */ + void clear_token_pagination() { + MutableStorage()->removeMember("tokenPagination"); + } + + + /** + * Get a reference to the value of the 'tokenPagination' + * attribute. + */ + const TokenPagination get_token_pagination() const; + + /** + * Gets a reference to a mutable value of the 'tokenPagination' + * property. + * @return The result can be modified to change the attribute value. + */ + TokenPagination mutable_tokenPagination(); + + /** + * Determine if the 'visitorId' attribute was set. + * + * @return true if the 'visitorId' attribute was set. + */ + bool has_visitor_id() const { + return Storage().isMember("visitorId"); + } + + /** + * Clears the 'visitorId' attribute. + */ + void clear_visitor_id() { + MutableStorage()->removeMember("visitorId"); + } + + + /** + * Get the value of the 'visitorId' attribute. + */ + const StringPiece get_visitor_id() const { + const Json::Value& v = Storage("visitorId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'visitorId' attribute. + * + * The visitorId identifies the visitor. + * + * @param[in] value The new value. + */ + void set_visitor_id(const StringPiece& value) { + *MutableStorage("visitorId") = value.data(); + } + + private: + void operator=(const CommentThreadListResponse&); +}; // CommentThreadListResponse +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_THREAD_LIST_RESPONSE_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_thread_replies.cc b/service_apis/youtube/google/youtube_api/comment_thread_replies.cc new file mode 100644 index 0000000..1d67f86 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_replies.cc @@ -0,0 +1,63 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentThreadReplies +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_thread_replies.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentThreadReplies* CommentThreadReplies::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentThreadReplies::CommentThreadReplies(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentThreadReplies::CommentThreadReplies(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentThreadReplies::~CommentThreadReplies() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_thread_replies.h b/service_apis/youtube/google/youtube_api/comment_thread_replies.h new file mode 100644 index 0000000..a2ed16b --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_replies.h @@ -0,0 +1,126 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_THREAD_REPLIES_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_THREAD_REPLIES_H_ + +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Comments written in (direct or indirect) reply to the top level comment. + * + * @ingroup DataObject + */ +class CommentThreadReplies : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentThreadReplies* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadReplies(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadReplies(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentThreadReplies(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentThreadReplies + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentThreadReplies"); + } + + /** + * Determine if the 'comments' attribute was set. + * + * @return true if the 'comments' attribute was set. + */ + bool has_comments() const { + return Storage().isMember("comments"); + } + + /** + * Clears the 'comments' attribute. + */ + void clear_comments() { + MutableStorage()->removeMember("comments"); + } + + + /** + * Get a reference to the value of the 'comments' attribute. + */ + const client::JsonCppArray get_comments() const; + + /** + * Gets a reference to a mutable value of the 'comments' + * property. + * + * A limited number of replies. Unless the number of replies returned equals + * total_reply_count in the snippet the returned replies are only a subset of + * the total number of replies. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_comments(); + + private: + void operator=(const CommentThreadReplies&); +}; // CommentThreadReplies +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_THREAD_REPLIES_H_ diff --git a/service_apis/youtube/google/youtube_api/comment_thread_snippet.cc b/service_apis/youtube/google/youtube_api/comment_thread_snippet.cc new file mode 100644 index 0000000..946f532 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_snippet.cc @@ -0,0 +1,65 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// CommentThreadSnippet +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/comment_thread_snippet.h" +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +CommentThreadSnippet* CommentThreadSnippet::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +CommentThreadSnippet::CommentThreadSnippet(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +CommentThreadSnippet::CommentThreadSnippet(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +CommentThreadSnippet::~CommentThreadSnippet() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/comment_thread_snippet.h b/service_apis/youtube/google/youtube_api/comment_thread_snippet.h new file mode 100644 index 0000000..8ea732d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/comment_thread_snippet.h @@ -0,0 +1,317 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_COMMENT_THREAD_SNIPPET_H_ +#define GOOGLE_YOUTUBE_API_COMMENT_THREAD_SNIPPET_H_ + +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/comment.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Basic details about a comment thread. + * + * @ingroup DataObject + */ +class CommentThreadSnippet : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static CommentThreadSnippet* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadSnippet(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit CommentThreadSnippet(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~CommentThreadSnippet(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::CommentThreadSnippet + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::CommentThreadSnippet"); + } + + /** + * Determine if the 'canReply' attribute was set. + * + * @return true if the 'canReply' attribute was set. + */ + bool has_can_reply() const { + return Storage().isMember("canReply"); + } + + /** + * Clears the 'canReply' attribute. + */ + void clear_can_reply() { + MutableStorage()->removeMember("canReply"); + } + + + /** + * Get the value of the 'canReply' attribute. + */ + bool get_can_reply() const { + const Json::Value& storage = Storage("canReply"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'canReply' attribute. + * + * Whether the current viewer of the thread can reply to it. This is viewer + * specific - other viewers may see a different value for this field. + * + * @param[in] value The new value. + */ + void set_can_reply(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("canReply")); + } + + /** + * Determine if the 'channelId' attribute was set. + * + * @return true if the 'channelId' attribute was set. + */ + bool has_channel_id() const { + return Storage().isMember("channelId"); + } + + /** + * Clears the 'channelId' attribute. + */ + void clear_channel_id() { + MutableStorage()->removeMember("channelId"); + } + + + /** + * Get the value of the 'channelId' attribute. + */ + const StringPiece get_channel_id() const { + const Json::Value& v = Storage("channelId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'channelId' attribute. + * + * The YouTube channel the comments in the thread refer to or the channel with + * the video the comments refer to. If video_id isn't set the comments refer + * to the channel itself. + * + * @param[in] value The new value. + */ + void set_channel_id(const StringPiece& value) { + *MutableStorage("channelId") = value.data(); + } + + /** + * Determine if the 'isPublic' attribute was set. + * + * @return true if the 'isPublic' attribute was set. + */ + bool has_is_public() const { + return Storage().isMember("isPublic"); + } + + /** + * Clears the 'isPublic' attribute. + */ + void clear_is_public() { + MutableStorage()->removeMember("isPublic"); + } + + + /** + * Get the value of the 'isPublic' attribute. + */ + bool get_is_public() const { + const Json::Value& storage = Storage("isPublic"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isPublic' attribute. + * + * Whether the thread (and therefore all its comments) is visible to all + * YouTube users. + * + * @param[in] value The new value. + */ + void set_is_public(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isPublic")); + } + + /** + * Determine if the 'topLevelComment' attribute was set. + * + * @return true if the 'topLevelComment' attribute was set. + */ + bool has_top_level_comment() const { + return Storage().isMember("topLevelComment"); + } + + /** + * Clears the 'topLevelComment' attribute. + */ + void clear_top_level_comment() { + MutableStorage()->removeMember("topLevelComment"); + } + + + /** + * Get a reference to the value of the 'topLevelComment' + * attribute. + */ + const Comment get_top_level_comment() const; + + /** + * Gets a reference to a mutable value of the 'topLevelComment' + * property. + * + * The top level comment of this thread. + * + * @return The result can be modified to change the attribute value. + */ + Comment mutable_topLevelComment(); + + /** + * Determine if the 'totalReplyCount' attribute was set. + * + * @return true if the 'totalReplyCount' attribute was set. + */ + bool has_total_reply_count() const { + return Storage().isMember("totalReplyCount"); + } + + /** + * Clears the 'totalReplyCount' attribute. + */ + void clear_total_reply_count() { + MutableStorage()->removeMember("totalReplyCount"); + } + + + /** + * Get the value of the 'totalReplyCount' attribute. + */ + uint32 get_total_reply_count() const { + const Json::Value& storage = Storage("totalReplyCount"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'totalReplyCount' attribute. + * + * The total number of replies (not including the top level comment). + * + * @param[in] value The new value. + */ + void set_total_reply_count(uint32 value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("totalReplyCount")); + } + + /** + * Determine if the 'videoId' attribute was set. + * + * @return true if the 'videoId' attribute was set. + */ + bool has_video_id() const { + return Storage().isMember("videoId"); + } + + /** + * Clears the 'videoId' attribute. + */ + void clear_video_id() { + MutableStorage()->removeMember("videoId"); + } + + + /** + * Get the value of the 'videoId' attribute. + */ + const StringPiece get_video_id() const { + const Json::Value& v = Storage("videoId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'videoId' attribute. + * + * The ID of the video the comments refer to, if any. No video_id implies a + * channel discussion comment. + * + * @param[in] value The new value. + */ + void set_video_id(const StringPiece& value) { + *MutableStorage("videoId") = value.data(); + } + + private: + void operator=(const CommentThreadSnippet&); +}; // CommentThreadSnippet +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_COMMENT_THREAD_SNIPPET_H_ diff --git a/service_apis/youtube/google/youtube_api/content_rating.cc b/service_apis/youtube/google/youtube_api/content_rating.cc index 2b31ae2..ad9548c 100644 --- a/service_apis/youtube/google/youtube_api/content_rating.cc +++ b/service_apis/youtube/google/youtube_api/content_rating.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/content_rating.h b/service_apis/youtube/google/youtube_api/content_rating.h index 9cf0480..4d3c2fe 100644 --- a/service_apis/youtube/google/youtube_api/content_rating.h +++ b/service_apis/youtube/google/youtube_api/content_rating.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_CONTENT_RATING_H_ #define GOOGLE_YOUTUBE_API_CONTENT_RATING_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ContentRating : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/geo_point.cc b/service_apis/youtube/google/youtube_api/geo_point.cc index f7f1140..d736ef7 100644 --- a/service_apis/youtube/google/youtube_api/geo_point.cc +++ b/service_apis/youtube/google/youtube_api/geo_point.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/geo_point.h b/service_apis/youtube/google/youtube_api/geo_point.h index 4954118..4cb4c5a 100644 --- a/service_apis/youtube/google/youtube_api/geo_point.h +++ b/service_apis/youtube/google/youtube_api/geo_point.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_GEO_POINT_H_ #define GOOGLE_YOUTUBE_API_GEO_POINT_H_ @@ -48,7 +48,6 @@ using namespace googleapis; */ class GeoPoint : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/guide_category.cc b/service_apis/youtube/google/youtube_api/guide_category.cc index 9ffd4ab..a6ce5fe 100644 --- a/service_apis/youtube/google/youtube_api/guide_category.cc +++ b/service_apis/youtube/google/youtube_api/guide_category.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/guide_category.h b/service_apis/youtube/google/youtube_api/guide_category.h index 0e2c2d4..4bbd61e 100644 --- a/service_apis/youtube/google/youtube_api/guide_category.h +++ b/service_apis/youtube/google/youtube_api/guide_category.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_H_ #define GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_H_ @@ -55,7 +55,6 @@ using namespace googleapis; */ class GuideCategory : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -223,10 +222,7 @@ class GuideCategory : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const GuideCategorySnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const GuideCategorySnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -236,10 +232,7 @@ class GuideCategory : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - GuideCategorySnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + GuideCategorySnippet mutable_snippet(); private: void operator=(const GuideCategory&); diff --git a/service_apis/youtube/google/youtube_api/guide_category_list_response.cc b/service_apis/youtube/google/youtube_api/guide_category_list_response.cc index 9722876..8f2a8b6 100644 --- a/service_apis/youtube/google/youtube_api/guide_category_list_response.cc +++ b/service_apis/youtube/google/youtube_api/guide_category_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/guide_category_list_response.h b/service_apis/youtube/google/youtube_api/guide_category_list_response.h index e671f1a..67a2dff 100644 --- a/service_apis/youtube/google/youtube_api/guide_category_list_response.h +++ b/service_apis/youtube/google/youtube_api/guide_category_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class GuideCategoryListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class GuideCategoryListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -197,10 +193,7 @@ class GuideCategoryListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -298,20 +291,14 @@ class GuideCategoryListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -372,20 +359,14 @@ class GuideCategoryListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/guide_category_snippet.cc b/service_apis/youtube/google/youtube_api/guide_category_snippet.cc index 7ced7ac..3b2daa4 100644 --- a/service_apis/youtube/google/youtube_api/guide_category_snippet.cc +++ b/service_apis/youtube/google/youtube_api/guide_category_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/guide_category_snippet.h b/service_apis/youtube/google/youtube_api/guide_category_snippet.h index d0e9d27..6c8dde9 100644 --- a/service_apis/youtube/google/youtube_api/guide_category_snippet.h +++ b/service_apis/youtube/google/youtube_api/guide_category_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_GUIDE_CATEGORY_SNIPPET_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class GuideCategorySnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/i18n_language.cc b/service_apis/youtube/google/youtube_api/i18n_language.cc index 5563c4a..ed0dce2 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language.cc +++ b/service_apis/youtube/google/youtube_api/i18n_language.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_language.h b/service_apis/youtube/google/youtube_api/i18n_language.h index a28a08d..7ba0dfc 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language.h +++ b/service_apis/youtube/google/youtube_api/i18n_language.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_LANGUAGE_H_ #define GOOGLE_YOUTUBE_API_I18N_LANGUAGE_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class I18nLanguage : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -220,10 +219,7 @@ class I18nLanguage : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const I18nLanguageSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const I18nLanguageSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -233,10 +229,7 @@ class I18nLanguage : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - I18nLanguageSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + I18nLanguageSnippet mutable_snippet(); private: void operator=(const I18nLanguage&); diff --git a/service_apis/youtube/google/youtube_api/i18n_language_list_response.cc b/service_apis/youtube/google/youtube_api/i18n_language_list_response.cc index bb7d30b..bd2bca4 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language_list_response.cc +++ b/service_apis/youtube/google/youtube_api/i18n_language_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_language_list_response.h b/service_apis/youtube/google/youtube_api/i18n_language_list_response.h index 4e4224d..263ed8f 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language_list_response.h +++ b/service_apis/youtube/google/youtube_api/i18n_language_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_LANGUAGE_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_I18N_LANGUAGE_LIST_RESPONSE_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class I18nLanguageListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class I18nLanguageListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -194,10 +190,7 @@ class I18nLanguageListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/i18n_language_snippet.cc b/service_apis/youtube/google/youtube_api/i18n_language_snippet.cc index 38c1131..dd392e3 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language_snippet.cc +++ b/service_apis/youtube/google/youtube_api/i18n_language_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_language_snippet.h b/service_apis/youtube/google/youtube_api/i18n_language_snippet.h index e16b137..3039e6e 100644 --- a/service_apis/youtube/google/youtube_api/i18n_language_snippet.h +++ b/service_apis/youtube/google/youtube_api/i18n_language_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_LANGUAGE_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_I18N_LANGUAGE_SNIPPET_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class I18nLanguageSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/i18n_region.cc b/service_apis/youtube/google/youtube_api/i18n_region.cc index 0f04c9b..3d67670 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region.cc +++ b/service_apis/youtube/google/youtube_api/i18n_region.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_region.h b/service_apis/youtube/google/youtube_api/i18n_region.h index 0287939..b4b2dd0 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region.h +++ b/service_apis/youtube/google/youtube_api/i18n_region.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_REGION_H_ #define GOOGLE_YOUTUBE_API_I18N_REGION_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class I18nRegion : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -219,10 +218,7 @@ class I18nRegion : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const I18nRegionSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const I18nRegionSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -232,10 +228,7 @@ class I18nRegion : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - I18nRegionSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + I18nRegionSnippet mutable_snippet(); private: void operator=(const I18nRegion&); diff --git a/service_apis/youtube/google/youtube_api/i18n_region_list_response.cc b/service_apis/youtube/google/youtube_api/i18n_region_list_response.cc index 27c95d7..ffe842d 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region_list_response.cc +++ b/service_apis/youtube/google/youtube_api/i18n_region_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_region_list_response.h b/service_apis/youtube/google/youtube_api/i18n_region_list_response.h index bb9f3b1..41afabd 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region_list_response.h +++ b/service_apis/youtube/google/youtube_api/i18n_region_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_REGION_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_I18N_REGION_LIST_RESPONSE_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class I18nRegionListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class I18nRegionListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -194,10 +190,7 @@ class I18nRegionListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/i18n_region_snippet.cc b/service_apis/youtube/google/youtube_api/i18n_region_snippet.cc index 32ee5c7..c44c119 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region_snippet.cc +++ b/service_apis/youtube/google/youtube_api/i18n_region_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/i18n_region_snippet.h b/service_apis/youtube/google/youtube_api/i18n_region_snippet.h index eaf896b..7661627 100644 --- a/service_apis/youtube/google/youtube_api/i18n_region_snippet.h +++ b/service_apis/youtube/google/youtube_api/i18n_region_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_I18N_REGION_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_I18N_REGION_SNIPPET_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class I18nRegionSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/image_settings.cc b/service_apis/youtube/google/youtube_api/image_settings.cc index ae7c228..54c9d42 100644 --- a/service_apis/youtube/google/youtube_api/image_settings.cc +++ b/service_apis/youtube/google/youtube_api/image_settings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/image_settings.h b/service_apis/youtube/google/youtube_api/image_settings.h index 0fe6daa..b0304ec 100644 --- a/service_apis/youtube/google/youtube_api/image_settings.h +++ b/service_apis/youtube/google/youtube_api/image_settings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_IMAGE_SETTINGS_H_ #define GOOGLE_YOUTUBE_API_IMAGE_SETTINGS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ImageSettings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -108,10 +107,7 @@ class ImageSettings : public client::JsonCppData { * Get a reference to the value of the 'backgroundImageUrl' * attribute. */ - const LocalizedProperty get_background_image_url() const { - const Json::Value& storage = Storage("backgroundImageUrl"); - return client::JsonValueToCppValueHelper(storage); - } + const LocalizedProperty get_background_image_url() const; /** * Gets a reference to a mutable value of the @@ -122,10 +118,7 @@ class ImageSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LocalizedProperty mutable_backgroundImageUrl() { - Json::Value* storage = MutableStorage("backgroundImageUrl"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LocalizedProperty mutable_backgroundImageUrl(); /** * Determine if the 'bannerExternalUrl' attribute was set. @@ -717,10 +710,7 @@ class ImageSettings : public client::JsonCppData { * Get a reference to the value of the * 'largeBrandedBannerImageImapScript' attribute. */ - const LocalizedProperty get_large_branded_banner_image_imap_script() const { - const Json::Value& storage = Storage("largeBrandedBannerImageImapScript"); - return client::JsonValueToCppValueHelper(storage); - } + const LocalizedProperty get_large_branded_banner_image_imap_script() const; /** * Gets a reference to a mutable value of the @@ -730,10 +720,7 @@ class ImageSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LocalizedProperty mutable_largeBrandedBannerImageImapScript() { - Json::Value* storage = MutableStorage("largeBrandedBannerImageImapScript"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LocalizedProperty mutable_largeBrandedBannerImageImapScript(); /** * Determine if the 'largeBrandedBannerImageUrl' attribute was @@ -758,10 +745,7 @@ class ImageSettings : public client::JsonCppData { * Get a reference to the value of the * 'largeBrandedBannerImageUrl' attribute. */ - const LocalizedProperty get_large_branded_banner_image_url() const { - const Json::Value& storage = Storage("largeBrandedBannerImageUrl"); - return client::JsonValueToCppValueHelper(storage); - } + const LocalizedProperty get_large_branded_banner_image_url() const; /** * Gets a reference to a mutable value of the @@ -772,10 +756,7 @@ class ImageSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LocalizedProperty mutable_largeBrandedBannerImageUrl() { - Json::Value* storage = MutableStorage("largeBrandedBannerImageUrl"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LocalizedProperty mutable_largeBrandedBannerImageUrl(); /** * Determine if the 'smallBrandedBannerImageImapScript' attribute @@ -800,10 +781,7 @@ class ImageSettings : public client::JsonCppData { * Get a reference to the value of the * 'smallBrandedBannerImageImapScript' attribute. */ - const LocalizedProperty get_small_branded_banner_image_imap_script() const { - const Json::Value& storage = Storage("smallBrandedBannerImageImapScript"); - return client::JsonValueToCppValueHelper(storage); - } + const LocalizedProperty get_small_branded_banner_image_imap_script() const; /** * Gets a reference to a mutable value of the @@ -813,10 +791,7 @@ class ImageSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LocalizedProperty mutable_smallBrandedBannerImageImapScript() { - Json::Value* storage = MutableStorage("smallBrandedBannerImageImapScript"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LocalizedProperty mutable_smallBrandedBannerImageImapScript(); /** * Determine if the 'smallBrandedBannerImageUrl' attribute was @@ -841,10 +816,7 @@ class ImageSettings : public client::JsonCppData { * Get a reference to the value of the * 'smallBrandedBannerImageUrl' attribute. */ - const LocalizedProperty get_small_branded_banner_image_url() const { - const Json::Value& storage = Storage("smallBrandedBannerImageUrl"); - return client::JsonValueToCppValueHelper(storage); - } + const LocalizedProperty get_small_branded_banner_image_url() const; /** * Gets a reference to a mutable value of the @@ -855,10 +827,7 @@ class ImageSettings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LocalizedProperty mutable_smallBrandedBannerImageUrl() { - Json::Value* storage = MutableStorage("smallBrandedBannerImageUrl"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LocalizedProperty mutable_smallBrandedBannerImageUrl(); /** * Determine if the 'trackingImageUrl' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/ingestion_info.cc b/service_apis/youtube/google/youtube_api/ingestion_info.cc index 0a0a53c..2411526 100644 --- a/service_apis/youtube/google/youtube_api/ingestion_info.cc +++ b/service_apis/youtube/google/youtube_api/ingestion_info.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/ingestion_info.h b/service_apis/youtube/google/youtube_api/ingestion_info.h index f462782..d390ca1 100644 --- a/service_apis/youtube/google/youtube_api/ingestion_info.h +++ b/service_apis/youtube/google/youtube_api/ingestion_info.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_INGESTION_INFO_H_ #define GOOGLE_YOUTUBE_API_INGESTION_INFO_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class IngestionInfo : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/invideo_branding.cc b/service_apis/youtube/google/youtube_api/invideo_branding.cc index df15507..ca5ea72 100644 --- a/service_apis/youtube/google/youtube_api/invideo_branding.cc +++ b/service_apis/youtube/google/youtube_api/invideo_branding.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/invideo_branding.h b/service_apis/youtube/google/youtube_api/invideo_branding.h index 08d01c7..edbaae6 100644 --- a/service_apis/youtube/google/youtube_api/invideo_branding.h +++ b/service_apis/youtube/google/youtube_api/invideo_branding.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_INVIDEO_BRANDING_H_ #define GOOGLE_YOUTUBE_API_INVIDEO_BRANDING_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class InvideoBranding : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -176,20 +175,14 @@ class InvideoBranding : public client::JsonCppData { /** * Get a reference to the value of the 'position' attribute. */ - const InvideoPosition get_position() const { - const Json::Value& storage = Storage("position"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoPosition get_position() const; /** * Gets a reference to a mutable value of the 'position' * property. * @return The result can be modified to change the attribute value. */ - InvideoPosition mutable_position() { - Json::Value* storage = MutableStorage("position"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoPosition mutable_position(); /** * Determine if the 'targetChannelId' attribute was set. @@ -245,19 +238,13 @@ class InvideoBranding : public client::JsonCppData { /** * Get a reference to the value of the 'timing' attribute. */ - const InvideoTiming get_timing() const { - const Json::Value& storage = Storage("timing"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoTiming get_timing() const; /** * Gets a reference to a mutable value of the 'timing' property. * @return The result can be modified to change the attribute value. */ - InvideoTiming mutable_timing() { - Json::Value* storage = MutableStorage("timing"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoTiming mutable_timing(); private: void operator=(const InvideoBranding&); diff --git a/service_apis/youtube/google/youtube_api/invideo_position.cc b/service_apis/youtube/google/youtube_api/invideo_position.cc index bb56f6e..6500a2c 100644 --- a/service_apis/youtube/google/youtube_api/invideo_position.cc +++ b/service_apis/youtube/google/youtube_api/invideo_position.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/invideo_position.h b/service_apis/youtube/google/youtube_api/invideo_position.h index ad2ca11..35742a5 100644 --- a/service_apis/youtube/google/youtube_api/invideo_position.h +++ b/service_apis/youtube/google/youtube_api/invideo_position.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_INVIDEO_POSITION_H_ #define GOOGLE_YOUTUBE_API_INVIDEO_POSITION_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class InvideoPosition : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/invideo_promotion.cc b/service_apis/youtube/google/youtube_api/invideo_promotion.cc index 8f2d0d5..6b4e53a 100644 --- a/service_apis/youtube/google/youtube_api/invideo_promotion.cc +++ b/service_apis/youtube/google/youtube_api/invideo_promotion.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/invideo_promotion.h b/service_apis/youtube/google/youtube_api/invideo_promotion.h index 3264756..3877616 100644 --- a/service_apis/youtube/google/youtube_api/invideo_promotion.h +++ b/service_apis/youtube/google/youtube_api/invideo_promotion.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_INVIDEO_PROMOTION_H_ #define GOOGLE_YOUTUBE_API_INVIDEO_PROMOTION_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class InvideoPromotion : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -109,10 +108,7 @@ class InvideoPromotion : public client::JsonCppData { /** * Get a reference to the value of the 'defaultTiming' attribute. */ - const InvideoTiming get_default_timing() const { - const Json::Value& storage = Storage("defaultTiming"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoTiming get_default_timing() const; /** * Gets a reference to a mutable value of the 'defaultTiming' @@ -123,10 +119,7 @@ class InvideoPromotion : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - InvideoTiming mutable_defaultTiming() { - Json::Value* storage = MutableStorage("defaultTiming"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoTiming mutable_defaultTiming(); /** * Determine if the 'items' attribute was set. @@ -148,10 +141,7 @@ class InvideoPromotion : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -160,10 +150,7 @@ class InvideoPromotion : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'position' attribute was set. @@ -185,10 +172,7 @@ class InvideoPromotion : public client::JsonCppData { /** * Get a reference to the value of the 'position' attribute. */ - const InvideoPosition get_position() const { - const Json::Value& storage = Storage("position"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoPosition get_position() const; /** * Gets a reference to a mutable value of the 'position' @@ -199,10 +183,7 @@ class InvideoPromotion : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - InvideoPosition mutable_position() { - Json::Value* storage = MutableStorage("position"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoPosition mutable_position(); /** * Determine if the 'useSmartTiming' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/invideo_timing.cc b/service_apis/youtube/google/youtube_api/invideo_timing.cc index c32ac35..eb7da7e 100644 --- a/service_apis/youtube/google/youtube_api/invideo_timing.cc +++ b/service_apis/youtube/google/youtube_api/invideo_timing.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/invideo_timing.h b/service_apis/youtube/google/youtube_api/invideo_timing.h index bbf362f..3496d63 100644 --- a/service_apis/youtube/google/youtube_api/invideo_timing.h +++ b/service_apis/youtube/google/youtube_api/invideo_timing.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_INVIDEO_TIMING_H_ #define GOOGLE_YOUTUBE_API_INVIDEO_TIMING_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class InvideoTiming : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/language_tag.cc b/service_apis/youtube/google/youtube_api/language_tag.cc index f8f0220..8ff381d 100644 --- a/service_apis/youtube/google/youtube_api/language_tag.cc +++ b/service_apis/youtube/google/youtube_api/language_tag.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/language_tag.h b/service_apis/youtube/google/youtube_api/language_tag.h index 534bbe9..19b8f24 100644 --- a/service_apis/youtube/google/youtube_api/language_tag.h +++ b/service_apis/youtube/google/youtube_api/language_tag.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LANGUAGE_TAG_H_ #define GOOGLE_YOUTUBE_API_LANGUAGE_TAG_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class LanguageTag : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/live_broadcast.cc b/service_apis/youtube/google/youtube_api/live_broadcast.cc index 938263c..c6ddcc7 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast.cc +++ b/service_apis/youtube/google/youtube_api/live_broadcast.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -35,6 +35,7 @@ #include "google/youtube_api/live_broadcast_content_details.h" #include "google/youtube_api/live_broadcast_snippet.h" +#include "google/youtube_api/live_broadcast_statistics.h" #include "google/youtube_api/live_broadcast_status.h" diff --git a/service_apis/youtube/google/youtube_api/live_broadcast.h b/service_apis/youtube/google/youtube_api/live_broadcast.h index 119a094..4986126 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast.h +++ b/service_apis/youtube/google/youtube_api/live_broadcast.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_H_ #define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_H_ @@ -37,6 +37,7 @@ #include "google/youtube_api/live_broadcast_content_details.h" #include "google/youtube_api/live_broadcast_snippet.h" +#include "google/youtube_api/live_broadcast_statistics.h" #include "google/youtube_api/live_broadcast_status.h" namespace Json { @@ -54,7 +55,6 @@ using namespace googleapis; */ class LiveBroadcast : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -111,10 +111,7 @@ class LiveBroadcast : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const LiveBroadcastContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveBroadcastContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -127,10 +124,7 @@ class LiveBroadcast : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveBroadcastContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LiveBroadcastContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -264,10 +258,7 @@ class LiveBroadcast : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const LiveBroadcastSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveBroadcastSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -277,11 +268,43 @@ class LiveBroadcast : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveBroadcastSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); + LiveBroadcastSnippet mutable_snippet(); + + /** + * Determine if the 'statistics' attribute was set. + * + * @return true if the 'statistics' attribute was set. + */ + bool has_statistics() const { + return Storage().isMember("statistics"); + } + + /** + * Clears the 'statistics' attribute. + */ + void clear_statistics() { + MutableStorage()->removeMember("statistics"); } + + /** + * Get a reference to the value of the 'statistics' attribute. + */ + const LiveBroadcastStatistics get_statistics() const; + + /** + * Gets a reference to a mutable value of the 'statistics' + * property. + * + * The statistics object contains info about the event's current stats. These + * include concurrent viewers and total chat count. Statistics can change (in + * either direction) during the lifetime of an event. Statistics are only + * returned while the event is live. + * + * @return The result can be modified to change the attribute value. + */ + LiveBroadcastStatistics mutable_statistics(); + /** * Determine if the 'status' attribute was set. * @@ -302,10 +325,7 @@ class LiveBroadcast : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const LiveBroadcastStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveBroadcastStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -314,10 +334,7 @@ class LiveBroadcast : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveBroadcastStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LiveBroadcastStatus mutable_status(); private: void operator=(const LiveBroadcast&); diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_content_details.cc b/service_apis/youtube/google/youtube_api/live_broadcast_content_details.cc index 0eff9d4..f0c44f2 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_content_details.cc +++ b/service_apis/youtube/google/youtube_api/live_broadcast_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_content_details.h b/service_apis/youtube/google/youtube_api/live_broadcast_content_details.h index e51afbf..03fd146 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_content_details.h +++ b/service_apis/youtube/google/youtube_api/live_broadcast_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_CONTENT_DETAILS_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class LiveBroadcastContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -288,6 +287,40 @@ class LiveBroadcastContentDetails : public client::JsonCppData { value, MutableStorage("enableEmbed")); } + /** + * Determine if the 'enableLowLatency' attribute was set. + * + * @return true if the 'enableLowLatency' attribute was set. + */ + bool has_enable_low_latency() const { + return Storage().isMember("enableLowLatency"); + } + + /** + * Clears the 'enableLowLatency' attribute. + */ + void clear_enable_low_latency() { + MutableStorage()->removeMember("enableLowLatency"); + } + + + /** + * Get the value of the 'enableLowLatency' attribute. + */ + bool get_enable_low_latency() const { + const Json::Value& storage = Storage("enableLowLatency"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'enableLowLatency' attribute. + * @param[in] value The new value. + */ + void set_enable_low_latency(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("enableLowLatency")); + } + /** * Determine if the 'monitorStream' attribute was set. * @@ -308,10 +341,7 @@ class LiveBroadcastContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'monitorStream' attribute. */ - const MonitorStreamInfo get_monitor_stream() const { - const Json::Value& storage = Storage("monitorStream"); - return client::JsonValueToCppValueHelper(storage); - } + const MonitorStreamInfo get_monitor_stream() const; /** * Gets a reference to a mutable value of the 'monitorStream' @@ -323,10 +353,7 @@ class LiveBroadcastContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - MonitorStreamInfo mutable_monitorStream() { - Json::Value* storage = MutableStorage("monitorStream"); - return client::JsonValueToMutableCppValueHelper(storage); - } + MonitorStreamInfo mutable_monitorStream(); /** * Determine if the 'recordFromStart' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_list_response.cc b/service_apis/youtube/google/youtube_api/live_broadcast_list_response.cc index 1b73e0c..614cd8d 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_list_response.cc +++ b/service_apis/youtube/google/youtube_api/live_broadcast_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_list_response.h b/service_apis/youtube/google/youtube_api/live_broadcast_list_response.h index df06822..7b9ec14 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_list_response.h +++ b/service_apis/youtube/google/youtube_api/live_broadcast_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class LiveBroadcastListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class LiveBroadcastListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class LiveBroadcastListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class LiveBroadcastListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class LiveBroadcastListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_snippet.cc b/service_apis/youtube/google/youtube_api/live_broadcast_snippet.cc index eba11c2..cf7fe44 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_snippet.cc +++ b/service_apis/youtube/google/youtube_api/live_broadcast_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_snippet.h b/service_apis/youtube/google/youtube_api/live_broadcast_snippet.h index 1a796a2..36bde86 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_snippet.h +++ b/service_apis/youtube/google/youtube_api/live_broadcast_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_SNIPPET_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class LiveBroadcastSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -243,6 +242,40 @@ class LiveBroadcastSnippet : public client::JsonCppData { *MutableStorage("description") = value.data(); } + /** + * Determine if the 'isDefaultBroadcast' attribute was set. + * + * @return true if the 'isDefaultBroadcast' attribute was set. + */ + bool has_is_default_broadcast() const { + return Storage().isMember("isDefaultBroadcast"); + } + + /** + * Clears the 'isDefaultBroadcast' attribute. + */ + void clear_is_default_broadcast() { + MutableStorage()->removeMember("isDefaultBroadcast"); + } + + + /** + * Get the value of the 'isDefaultBroadcast' attribute. + */ + bool get_is_default_broadcast() const { + const Json::Value& storage = Storage("isDefaultBroadcast"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isDefaultBroadcast' attribute. + * @param[in] value The new value. + */ + void set_is_default_broadcast(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isDefaultBroadcast")); + } + /** * Determine if the 'publishedAt' attribute was set. * @@ -378,10 +411,7 @@ class LiveBroadcastSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -393,10 +423,7 @@ class LiveBroadcastSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_statistics.cc b/service_apis/youtube/google/youtube_api/live_broadcast_statistics.cc new file mode 100644 index 0000000..436f86e --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_broadcast_statistics.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// LiveBroadcastStatistics +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/live_broadcast_statistics.h" +#include "googleapis/base/integral_types.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +LiveBroadcastStatistics* LiveBroadcastStatistics::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +LiveBroadcastStatistics::LiveBroadcastStatistics(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +LiveBroadcastStatistics::LiveBroadcastStatistics(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +LiveBroadcastStatistics::~LiveBroadcastStatistics() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_statistics.h b/service_apis/youtube/google/youtube_api/live_broadcast_statistics.h new file mode 100644 index 0000000..0b4661d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_broadcast_statistics.h @@ -0,0 +1,176 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_STATISTICS_H_ +#define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_STATISTICS_H_ + +#include "googleapis/base/integral_types.h" +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Statistics about the live broadcast. These represent a snapshot of the values + * at the time of the request. Statistics are only returned for live broadcasts. + * + * @ingroup DataObject + */ +class LiveBroadcastStatistics : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static LiveBroadcastStatistics* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveBroadcastStatistics(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveBroadcastStatistics(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~LiveBroadcastStatistics(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::LiveBroadcastStatistics + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::LiveBroadcastStatistics"); + } + + /** + * Determine if the 'concurrentViewers' attribute was set. + * + * @return true if the 'concurrentViewers' attribute was set. + */ + bool has_concurrent_viewers() const { + return Storage().isMember("concurrentViewers"); + } + + /** + * Clears the 'concurrentViewers' attribute. + */ + void clear_concurrent_viewers() { + MutableStorage()->removeMember("concurrentViewers"); + } + + + /** + * Get the value of the 'concurrentViewers' attribute. + */ + uint64 get_concurrent_viewers() const { + const Json::Value& storage = Storage("concurrentViewers"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'concurrentViewers' attribute. + * + * The number of viewers currently watching the broadcast. The property and + * its value will be present if the broadcast has current viewers and the + * broadcast owner has not hidden the viewcount for the video. Note that + * YouTube stops tracking the number of concurrent viewers for a broadcast + * when the broadcast ends. So, this property would not identify the number of + * viewers watching an archived video of a live broadcast that already ended. + * + * @param[in] value The new value. + */ + void set_concurrent_viewers(uint64 value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("concurrentViewers")); + } + + /** + * Determine if the 'totalChatCount' attribute was set. + * + * @return true if the 'totalChatCount' attribute was set. + */ + bool has_total_chat_count() const { + return Storage().isMember("totalChatCount"); + } + + /** + * Clears the 'totalChatCount' attribute. + */ + void clear_total_chat_count() { + MutableStorage()->removeMember("totalChatCount"); + } + + + /** + * Get the value of the 'totalChatCount' attribute. + */ + uint64 get_total_chat_count() const { + const Json::Value& storage = Storage("totalChatCount"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'totalChatCount' attribute. + * + * The total number of live chat messages currently on the broadcast. The + * property and its value will be present if the broadcast is public, has the + * live chat feature enabled, and has at least one message. Note that this + * field will not be filled after the broadcast ends. So this property would + * not identify the number of chat messages for an archived video of a + * completed live broadcast. + * + * @param[in] value The new value. + */ + void set_total_chat_count(uint64 value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("totalChatCount")); + } + + private: + void operator=(const LiveBroadcastStatistics&); +}; // LiveBroadcastStatistics +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_LIVE_BROADCAST_STATISTICS_H_ diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_status.cc b/service_apis/youtube/google/youtube_api/live_broadcast_status.cc index 808d027..8b8374b 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_status.cc +++ b/service_apis/youtube/google/youtube_api/live_broadcast_status.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_broadcast_status.h b/service_apis/youtube/google/youtube_api/live_broadcast_status.h index 6cab8bb..f849cb9 100644 --- a/service_apis/youtube/google/youtube_api/live_broadcast_status.h +++ b/service_apis/youtube/google/youtube_api/live_broadcast_status.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_BROADCAST_STATUS_H_ #define GOOGLE_YOUTUBE_API_LIVE_BROADCAST_STATUS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class LiveBroadcastStatus : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/live_stream.cc b/service_apis/youtube/google/youtube_api/live_stream.cc index 350fd03..d849d51 100644 --- a/service_apis/youtube/google/youtube_api/live_stream.cc +++ b/service_apis/youtube/google/youtube_api/live_stream.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_stream.h b/service_apis/youtube/google/youtube_api/live_stream.h index 7286520..6e58adf 100644 --- a/service_apis/youtube/google/youtube_api/live_stream.h +++ b/service_apis/youtube/google/youtube_api/live_stream.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_H_ #define GOOGLE_YOUTUBE_API_LIVE_STREAM_H_ @@ -54,7 +54,6 @@ using namespace googleapis; */ class LiveStream : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -110,10 +109,7 @@ class LiveStream : public client::JsonCppData { /** * Get a reference to the value of the 'cdn' attribute. */ - const CdnSettings get_cdn() const { - const Json::Value& storage = Storage("cdn"); - return client::JsonValueToCppValueHelper(storage); - } + const CdnSettings get_cdn() const; /** * Gets a reference to a mutable value of the 'cdn' property. @@ -124,10 +120,7 @@ class LiveStream : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - CdnSettings mutable_cdn() { - Json::Value* storage = MutableStorage("cdn"); - return client::JsonValueToMutableCppValueHelper(storage); - } + CdnSettings mutable_cdn(); /** * Determine if the 'contentDetails' attribute was set. @@ -150,10 +143,7 @@ class LiveStream : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const LiveStreamContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveStreamContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -164,10 +154,7 @@ class LiveStream : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveStreamContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LiveStreamContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -301,10 +288,7 @@ class LiveStream : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const LiveStreamSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveStreamSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -314,10 +298,7 @@ class LiveStream : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveStreamSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LiveStreamSnippet mutable_snippet(); /** * Determine if the 'status' attribute was set. @@ -339,10 +320,7 @@ class LiveStream : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const LiveStreamStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const LiveStreamStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -351,10 +329,7 @@ class LiveStream : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LiveStreamStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LiveStreamStatus mutable_status(); private: void operator=(const LiveStream&); diff --git a/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.cc b/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.cc new file mode 100644 index 0000000..a77b24a --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// LiveStreamConfigurationIssue +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/live_stream_configuration_issue.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +LiveStreamConfigurationIssue* LiveStreamConfigurationIssue::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +LiveStreamConfigurationIssue::LiveStreamConfigurationIssue(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +LiveStreamConfigurationIssue::LiveStreamConfigurationIssue(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +LiveStreamConfigurationIssue::~LiveStreamConfigurationIssue() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.h b/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.h new file mode 100644 index 0000000..ec9e720 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_stream_configuration_issue.h @@ -0,0 +1,239 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_CONFIGURATION_ISSUE_H_ +#define GOOGLE_YOUTUBE_API_LIVE_STREAM_CONFIGURATION_ISSUE_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class LiveStreamConfigurationIssue : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static LiveStreamConfigurationIssue* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveStreamConfigurationIssue(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveStreamConfigurationIssue(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~LiveStreamConfigurationIssue(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::LiveStreamConfigurationIssue + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::LiveStreamConfigurationIssue"); + } + + /** + * Determine if the 'description' attribute was set. + * + * @return true if the 'description' attribute was set. + */ + bool has_description() const { + return Storage().isMember("description"); + } + + /** + * Clears the 'description' attribute. + */ + void clear_description() { + MutableStorage()->removeMember("description"); + } + + + /** + * Get the value of the 'description' attribute. + */ + const StringPiece get_description() const { + const Json::Value& v = Storage("description"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'description' attribute. + * + * The long-form description of the issue and how to resolve it. + * + * @param[in] value The new value. + */ + void set_description(const StringPiece& value) { + *MutableStorage("description") = value.data(); + } + + /** + * Determine if the 'reason' attribute was set. + * + * @return true if the 'reason' attribute was set. + */ + bool has_reason() const { + return Storage().isMember("reason"); + } + + /** + * Clears the 'reason' attribute. + */ + void clear_reason() { + MutableStorage()->removeMember("reason"); + } + + + /** + * Get the value of the 'reason' attribute. + */ + const StringPiece get_reason() const { + const Json::Value& v = Storage("reason"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'reason' attribute. + * + * The short-form reason for this issue. + * + * @param[in] value The new value. + */ + void set_reason(const StringPiece& value) { + *MutableStorage("reason") = value.data(); + } + + /** + * Determine if the 'severity' attribute was set. + * + * @return true if the 'severity' attribute was set. + */ + bool has_severity() const { + return Storage().isMember("severity"); + } + + /** + * Clears the 'severity' attribute. + */ + void clear_severity() { + MutableStorage()->removeMember("severity"); + } + + + /** + * Get the value of the 'severity' attribute. + */ + const StringPiece get_severity() const { + const Json::Value& v = Storage("severity"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'severity' attribute. + * + * How severe this issue is to the stream. + * + * @param[in] value The new value. + */ + void set_severity(const StringPiece& value) { + *MutableStorage("severity") = value.data(); + } + + /** + * Determine if the 'type' attribute was set. + * + * @return true if the 'type' attribute was set. + */ + bool has_type() const { + return Storage().isMember("type"); + } + + /** + * Clears the 'type' attribute. + */ + void clear_type() { + MutableStorage()->removeMember("type"); + } + + + /** + * Get the value of the 'type' attribute. + */ + const StringPiece get_type() const { + const Json::Value& v = Storage("type"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'type' attribute. + * + * The kind of error happening. + * + * @param[in] value The new value. + */ + void set_type(const StringPiece& value) { + *MutableStorage("type") = value.data(); + } + + private: + void operator=(const LiveStreamConfigurationIssue&); +}; // LiveStreamConfigurationIssue +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_LIVE_STREAM_CONFIGURATION_ISSUE_H_ diff --git a/service_apis/youtube/google/youtube_api/live_stream_content_details.cc b/service_apis/youtube/google/youtube_api/live_stream_content_details.cc index 51d47a0..6bb83aa 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_content_details.cc +++ b/service_apis/youtube/google/youtube_api/live_stream_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_stream_content_details.h b/service_apis/youtube/google/youtube_api/live_stream_content_details.h index b74e2db..0584f7a 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_content_details.h +++ b/service_apis/youtube/google/youtube_api/live_stream_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_LIVE_STREAM_CONTENT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class LiveStreamContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/live_stream_health_status.cc b/service_apis/youtube/google/youtube_api/live_stream_health_status.cc new file mode 100644 index 0000000..1a1972e --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_stream_health_status.cc @@ -0,0 +1,65 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// LiveStreamHealthStatus +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/live_stream_health_status.h" +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/live_stream_configuration_issue.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +LiveStreamHealthStatus* LiveStreamHealthStatus::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +LiveStreamHealthStatus::LiveStreamHealthStatus(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +LiveStreamHealthStatus::LiveStreamHealthStatus(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +LiveStreamHealthStatus::~LiveStreamHealthStatus() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/live_stream_health_status.h b/service_apis/youtube/google/youtube_api/live_stream_health_status.h new file mode 100644 index 0000000..e491309 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/live_stream_health_status.h @@ -0,0 +1,201 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_HEALTH_STATUS_H_ +#define GOOGLE_YOUTUBE_API_LIVE_STREAM_HEALTH_STATUS_H_ + +#include +#include "googleapis/base/integral_types.h" +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/live_stream_configuration_issue.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class LiveStreamHealthStatus : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static LiveStreamHealthStatus* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveStreamHealthStatus(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit LiveStreamHealthStatus(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~LiveStreamHealthStatus(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::LiveStreamHealthStatus + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::LiveStreamHealthStatus"); + } + + /** + * Determine if the 'configurationIssues' attribute was set. + * + * @return true if the 'configurationIssues' attribute was set. + */ + bool has_configuration_issues() const { + return Storage().isMember("configurationIssues"); + } + + /** + * Clears the 'configurationIssues' attribute. + */ + void clear_configuration_issues() { + MutableStorage()->removeMember("configurationIssues"); + } + + + /** + * Get a reference to the value of the 'configurationIssues' + * attribute. + */ + const client::JsonCppArray get_configuration_issues() const; + + /** + * Gets a reference to a mutable value of the + * 'configurationIssues' property. + * + * The configurations issues on this stream. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_configurationIssues(); + + /** + * Determine if the 'lastUpdateTimeS' attribute was set. + * + * @return true if the 'lastUpdateTimeS' attribute was set. + */ + bool has_last_update_time_s() const { + return Storage().isMember("lastUpdateTimeS"); + } + + /** + * Clears the 'lastUpdateTimeS' attribute. + */ + void clear_last_update_time_s() { + MutableStorage()->removeMember("lastUpdateTimeS"); + } + + + /** + * Get the value of the 'lastUpdateTimeS' attribute. + */ + uint64 get_last_update_time_s() const { + const Json::Value& storage = Storage("lastUpdateTimeS"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'lastUpdateTimeS' attribute. + * + * The last time this status was updated (in seconds). + * + * @param[in] value The new value. + */ + void set_last_update_time_s(uint64 value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("lastUpdateTimeS")); + } + + /** + * Determine if the 'status' attribute was set. + * + * @return true if the 'status' attribute was set. + */ + bool has_status() const { + return Storage().isMember("status"); + } + + /** + * Clears the 'status' attribute. + */ + void clear_status() { + MutableStorage()->removeMember("status"); + } + + + /** + * Get the value of the 'status' attribute. + */ + const StringPiece get_status() const { + const Json::Value& v = Storage("status"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'status' attribute. + * + * The status code of this stream. + * + * @param[in] value The new value. + */ + void set_status(const StringPiece& value) { + *MutableStorage("status") = value.data(); + } + + private: + void operator=(const LiveStreamHealthStatus&); +}; // LiveStreamHealthStatus +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_LIVE_STREAM_HEALTH_STATUS_H_ diff --git a/service_apis/youtube/google/youtube_api/live_stream_list_response.cc b/service_apis/youtube/google/youtube_api/live_stream_list_response.cc index e0e3476..71c70bf 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_list_response.cc +++ b/service_apis/youtube/google/youtube_api/live_stream_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_stream_list_response.h b/service_apis/youtube/google/youtube_api/live_stream_list_response.h index f359c15..1b1f864 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_list_response.h +++ b/service_apis/youtube/google/youtube_api/live_stream_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_LIVE_STREAM_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class LiveStreamListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class LiveStreamListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class LiveStreamListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class LiveStreamListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class LiveStreamListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/live_stream_snippet.cc b/service_apis/youtube/google/youtube_api/live_stream_snippet.cc index 3499438..6de4138 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_snippet.cc +++ b/service_apis/youtube/google/youtube_api/live_stream_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/live_stream_snippet.h b/service_apis/youtube/google/youtube_api/live_stream_snippet.h index fd948ac..163fc6c 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_snippet.h +++ b/service_apis/youtube/google/youtube_api/live_stream_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_LIVE_STREAM_SNIPPET_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class LiveStreamSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -161,6 +160,40 @@ class LiveStreamSnippet : public client::JsonCppData { *MutableStorage("description") = value.data(); } + /** + * Determine if the 'isDefaultStream' attribute was set. + * + * @return true if the 'isDefaultStream' attribute was set. + */ + bool has_is_default_stream() const { + return Storage().isMember("isDefaultStream"); + } + + /** + * Clears the 'isDefaultStream' attribute. + */ + void clear_is_default_stream() { + MutableStorage()->removeMember("isDefaultStream"); + } + + + /** + * Get the value of the 'isDefaultStream' attribute. + */ + bool get_is_default_stream() const { + const Json::Value& storage = Storage("isDefaultStream"); + return client::JsonValueToCppValueHelper(storage); + } + + /** + * Change the 'isDefaultStream' attribute. + * @param[in] value The new value. + */ + void set_is_default_stream(bool value) { + client::SetJsonValueFromCppValueHelper( + value, MutableStorage("isDefaultStream")); + } + /** * Determine if the 'publishedAt' attribute was set. * diff --git a/service_apis/youtube/google/youtube_api/live_stream_status.cc b/service_apis/youtube/google/youtube_api/live_stream_status.cc index 9b55cea..69553c9 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_status.cc +++ b/service_apis/youtube/google/youtube_api/live_stream_status.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -33,6 +33,8 @@ #include "googleapis/client/data/jsoncpp_data.h" #include "googleapis/strings/stringpiece.h" +#include "google/youtube_api/live_stream_health_status.h" + #include #include "googleapis/strings/strcat.h" diff --git a/service_apis/youtube/google/youtube_api/live_stream_status.h b/service_apis/youtube/google/youtube_api/live_stream_status.h index 6673afd..5a2dc02 100644 --- a/service_apis/youtube/google/youtube_api/live_stream_status.h +++ b/service_apis/youtube/google/youtube_api/live_stream_status.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LIVE_STREAM_STATUS_H_ #define GOOGLE_YOUTUBE_API_LIVE_STREAM_STATUS_H_ @@ -35,6 +35,8 @@ #include "googleapis/client/data/jsoncpp_data.h" #include "googleapis/strings/stringpiece.h" +#include "google/youtube_api/live_stream_health_status.h" + namespace Json { class Value; } // namespace Json @@ -49,7 +51,6 @@ using namespace googleapis; */ class LiveStreamStatus : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -85,6 +86,38 @@ class LiveStreamStatus : public client::JsonCppData { return StringPiece("google_youtube_api::LiveStreamStatus"); } + /** + * Determine if the 'healthStatus' attribute was set. + * + * @return true if the 'healthStatus' attribute was set. + */ + bool has_health_status() const { + return Storage().isMember("healthStatus"); + } + + /** + * Clears the 'healthStatus' attribute. + */ + void clear_health_status() { + MutableStorage()->removeMember("healthStatus"); + } + + + /** + * Get a reference to the value of the 'healthStatus' attribute. + */ + const LiveStreamHealthStatus get_health_status() const; + + /** + * Gets a reference to a mutable value of the 'healthStatus' + * property. + * + * The health status of the stream. + * + * @return The result can be modified to change the attribute value. + */ + LiveStreamHealthStatus mutable_healthStatus(); + /** * Determine if the 'streamStatus' attribute was set. * diff --git a/service_apis/youtube/google/youtube_api/localized_property.cc b/service_apis/youtube/google/youtube_api/localized_property.cc index 5bf90b8..b82d989 100644 --- a/service_apis/youtube/google/youtube_api/localized_property.cc +++ b/service_apis/youtube/google/youtube_api/localized_property.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/localized_property.h b/service_apis/youtube/google/youtube_api/localized_property.h index 3672ae3..bdb8fdf 100644 --- a/service_apis/youtube/google/youtube_api/localized_property.h +++ b/service_apis/youtube/google/youtube_api/localized_property.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LOCALIZED_PROPERTY_H_ #define GOOGLE_YOUTUBE_API_LOCALIZED_PROPERTY_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class LocalizedProperty : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -143,10 +142,7 @@ class LocalizedProperty : public client::JsonCppData { * Get a reference to the value of the 'defaultLanguage' * attribute. */ - const LanguageTag get_default_language() const { - const Json::Value& storage = Storage("defaultLanguage"); - return client::JsonValueToCppValueHelper(storage); - } + const LanguageTag get_default_language() const; /** * Gets a reference to a mutable value of the 'defaultLanguage' @@ -156,10 +152,7 @@ class LocalizedProperty : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - LanguageTag mutable_defaultLanguage() { - Json::Value* storage = MutableStorage("defaultLanguage"); - return client::JsonValueToMutableCppValueHelper(storage); - } + LanguageTag mutable_defaultLanguage(); /** * Determine if the 'localized' attribute was set. @@ -181,20 +174,14 @@ class LocalizedProperty : public client::JsonCppData { /** * Get a reference to the value of the 'localized' attribute. */ - const client::JsonCppArray get_localized() const { - const Json::Value& storage = Storage("localized"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_localized() const; /** * Gets a reference to a mutable value of the 'localized' * property. * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_localized() { - Json::Value* storage = MutableStorage("localized"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_localized(); private: void operator=(const LocalizedProperty&); diff --git a/service_apis/youtube/google/youtube_api/localized_string.cc b/service_apis/youtube/google/youtube_api/localized_string.cc index 97cca63..0578f96 100644 --- a/service_apis/youtube/google/youtube_api/localized_string.cc +++ b/service_apis/youtube/google/youtube_api/localized_string.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/localized_string.h b/service_apis/youtube/google/youtube_api/localized_string.h index b10ef42..c7725ec 100644 --- a/service_apis/youtube/google/youtube_api/localized_string.h +++ b/service_apis/youtube/google/youtube_api/localized_string.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_LOCALIZED_STRING_H_ #define GOOGLE_YOUTUBE_API_LOCALIZED_STRING_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class LocalizedString : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/monitor_stream_info.cc b/service_apis/youtube/google/youtube_api/monitor_stream_info.cc index daa565b..80dd733 100644 --- a/service_apis/youtube/google/youtube_api/monitor_stream_info.cc +++ b/service_apis/youtube/google/youtube_api/monitor_stream_info.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/monitor_stream_info.h b/service_apis/youtube/google/youtube_api/monitor_stream_info.h index aaaf518..39fac94 100644 --- a/service_apis/youtube/google/youtube_api/monitor_stream_info.h +++ b/service_apis/youtube/google/youtube_api/monitor_stream_info.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_MONITOR_STREAM_INFO_H_ #define GOOGLE_YOUTUBE_API_MONITOR_STREAM_INFO_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class MonitorStreamInfo : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/page_info.cc b/service_apis/youtube/google/youtube_api/page_info.cc index 9e6e744..4bdd7ba 100644 --- a/service_apis/youtube/google/youtube_api/page_info.cc +++ b/service_apis/youtube/google/youtube_api/page_info.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/page_info.h b/service_apis/youtube/google/youtube_api/page_info.h index bebb307..1e0eb64 100644 --- a/service_apis/youtube/google/youtube_api/page_info.h +++ b/service_apis/youtube/google/youtube_api/page_info.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PAGE_INFO_H_ #define GOOGLE_YOUTUBE_API_PAGE_INFO_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class PageInfo : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist.cc b/service_apis/youtube/google/youtube_api/playlist.cc index aa11a69..7161e0d 100644 --- a/service_apis/youtube/google/youtube_api/playlist.cc +++ b/service_apis/youtube/google/youtube_api/playlist.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist.h b/service_apis/youtube/google/youtube_api/playlist.h index 269cac5..94ef362 100644 --- a/service_apis/youtube/google/youtube_api/playlist.h +++ b/service_apis/youtube/google/youtube_api/playlist.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_H_ @@ -74,7 +74,6 @@ using namespace googleapis; */ class Playlist : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -131,10 +130,7 @@ class Playlist : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const PlaylistContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -144,10 +140,7 @@ class Playlist : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -281,10 +274,7 @@ class Playlist : public client::JsonCppData { /** * Get a reference to the value of the 'localizations' attribute. */ - const client::JsonCppAssociativeArray get_localizations() const { - const Json::Value& storage = Storage("localizations"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_localizations() const; /** * Gets a reference to a mutable value of the 'localizations' @@ -294,10 +284,7 @@ class Playlist : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_localizations() { - Json::Value* storage = MutableStorage("localizations"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_localizations(); /** * Determine if the 'player' attribute was set. @@ -319,10 +306,7 @@ class Playlist : public client::JsonCppData { /** * Get a reference to the value of the 'player' attribute. */ - const PlaylistPlayer get_player() const { - const Json::Value& storage = Storage("player"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistPlayer get_player() const; /** * Gets a reference to a mutable value of the 'player' property. @@ -332,10 +316,7 @@ class Playlist : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistPlayer mutable_player() { - Json::Value* storage = MutableStorage("player"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistPlayer mutable_player(); /** * Determine if the 'snippet' attribute was set. @@ -357,10 +338,7 @@ class Playlist : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const PlaylistSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -370,10 +348,7 @@ class Playlist : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistSnippet mutable_snippet(); /** * Determine if the 'status' attribute was set. @@ -395,10 +370,7 @@ class Playlist : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const PlaylistStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -407,10 +379,7 @@ class Playlist : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistStatus mutable_status(); private: void operator=(const Playlist&); diff --git a/service_apis/youtube/google/youtube_api/playlist_content_details.cc b/service_apis/youtube/google/youtube_api/playlist_content_details.cc index f6d39c6..9aabcb0 100644 --- a/service_apis/youtube/google/youtube_api/playlist_content_details.cc +++ b/service_apis/youtube/google/youtube_api/playlist_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_content_details.h b/service_apis/youtube/google/youtube_api/playlist_content_details.h index a3b071f..ab6fb72 100644 --- a/service_apis/youtube/google/youtube_api/playlist_content_details.h +++ b/service_apis/youtube/google/youtube_api/playlist_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_CONTENT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist_item.cc b/service_apis/youtube/google/youtube_api/playlist_item.cc index 2ed6dc8..0deec8c 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item.cc +++ b/service_apis/youtube/google/youtube_api/playlist_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_item.h b/service_apis/youtube/google/youtube_api/playlist_item.h index bcd58d0..0fdce5f 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item.h +++ b/service_apis/youtube/google/youtube_api/playlist_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_H_ @@ -73,7 +73,6 @@ using namespace googleapis; */ class PlaylistItem : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -130,10 +129,7 @@ class PlaylistItem : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const PlaylistItemContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistItemContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -145,10 +141,7 @@ class PlaylistItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistItemContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistItemContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -282,10 +275,7 @@ class PlaylistItem : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const PlaylistItemSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistItemSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -295,10 +285,7 @@ class PlaylistItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistItemSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistItemSnippet mutable_snippet(); /** * Determine if the 'status' attribute was set. @@ -320,10 +307,7 @@ class PlaylistItem : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const PlaylistItemStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistItemStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -333,10 +317,7 @@ class PlaylistItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistItemStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistItemStatus mutable_status(); private: void operator=(const PlaylistItem&); diff --git a/service_apis/youtube/google/youtube_api/playlist_item_content_details.cc b/service_apis/youtube/google/youtube_api/playlist_item_content_details.cc index 5ac4028..697db97 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_content_details.cc +++ b/service_apis/youtube/google/youtube_api/playlist_item_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_content_details.h b/service_apis/youtube/google/youtube_api/playlist_item_content_details.h index 8c7da60..5d2c87b 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_content_details.h +++ b/service_apis/youtube/google/youtube_api/playlist_item_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_CONTENT_DETAILS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistItemContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist_item_list_response.cc b/service_apis/youtube/google/youtube_api/playlist_item_list_response.cc index ccac1de..4565ce2 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_list_response.cc +++ b/service_apis/youtube/google/youtube_api/playlist_item_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_list_response.h b/service_apis/youtube/google/youtube_api/playlist_item_list_response.h index 7828236..88a17d8 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_list_response.h +++ b/service_apis/youtube/google/youtube_api/playlist_item_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class PlaylistItemListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class PlaylistItemListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class PlaylistItemListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class PlaylistItemListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class PlaylistItemListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_snippet.cc b/service_apis/youtube/google/youtube_api/playlist_item_snippet.cc index f0373de..dbb0cbc 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_snippet.cc +++ b/service_apis/youtube/google/youtube_api/playlist_item_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_snippet.h b/service_apis/youtube/google/youtube_api/playlist_item_snippet.h index 241c905..bb33c59 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_snippet.h +++ b/service_apis/youtube/google/youtube_api/playlist_item_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_SNIPPET_H_ @@ -54,7 +54,6 @@ using namespace googleapis; */ class PlaylistItemSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -337,10 +336,7 @@ class PlaylistItemSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -351,10 +347,7 @@ class PlaylistItemSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); /** * Determine if the 'thumbnails' attribute was set. @@ -376,10 +369,7 @@ class PlaylistItemSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -391,10 +381,7 @@ class PlaylistItemSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_status.cc b/service_apis/youtube/google/youtube_api/playlist_item_status.cc index e6baa85..bb2cf13 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_status.cc +++ b/service_apis/youtube/google/youtube_api/playlist_item_status.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_item_status.h b/service_apis/youtube/google/youtube_api/playlist_item_status.h index f4fbac3..b177afc 100644 --- a/service_apis/youtube/google/youtube_api/playlist_item_status.h +++ b/service_apis/youtube/google/youtube_api/playlist_item_status.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_STATUS_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_ITEM_STATUS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistItemStatus : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist_list_response.cc b/service_apis/youtube/google/youtube_api/playlist_list_response.cc index ef6c5a1..f878607 100644 --- a/service_apis/youtube/google/youtube_api/playlist_list_response.cc +++ b/service_apis/youtube/google/youtube_api/playlist_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_list_response.h b/service_apis/youtube/google/youtube_api/playlist_list_response.h index d5750c4..29c7216 100644 --- a/service_apis/youtube/google/youtube_api/playlist_list_response.h +++ b/service_apis/youtube/google/youtube_api/playlist_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class PlaylistListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class PlaylistListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class PlaylistListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class PlaylistListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class PlaylistListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/playlist_localization.cc b/service_apis/youtube/google/youtube_api/playlist_localization.cc index 9164ac3..31de444 100644 --- a/service_apis/youtube/google/youtube_api/playlist_localization.cc +++ b/service_apis/youtube/google/youtube_api/playlist_localization.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_localization.h b/service_apis/youtube/google/youtube_api/playlist_localization.h index 3f17d59..25239da 100644 --- a/service_apis/youtube/google/youtube_api/playlist_localization.h +++ b/service_apis/youtube/google/youtube_api/playlist_localization.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_LOCALIZATION_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_LOCALIZATION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistLocalization : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist_player.cc b/service_apis/youtube/google/youtube_api/playlist_player.cc index f4b3cfb..a4d81c5 100644 --- a/service_apis/youtube/google/youtube_api/playlist_player.cc +++ b/service_apis/youtube/google/youtube_api/playlist_player.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_player.h b/service_apis/youtube/google/youtube_api/playlist_player.h index 2a734b9..0cad3c8 100644 --- a/service_apis/youtube/google/youtube_api/playlist_player.h +++ b/service_apis/youtube/google/youtube_api/playlist_player.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_PLAYER_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_PLAYER_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistPlayer : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/playlist_snippet.cc b/service_apis/youtube/google/youtube_api/playlist_snippet.cc index 5076e19..b48184b 100644 --- a/service_apis/youtube/google/youtube_api/playlist_snippet.cc +++ b/service_apis/youtube/google/youtube_api/playlist_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_snippet.h b/service_apis/youtube/google/youtube_api/playlist_snippet.h index aa1ae5e..415e8d6 100644 --- a/service_apis/youtube/google/youtube_api/playlist_snippet.h +++ b/service_apis/youtube/google/youtube_api/playlist_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_SNIPPET_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class PlaylistSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -258,10 +257,7 @@ class PlaylistSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'localized' attribute. */ - const PlaylistLocalization get_localized() const { - const Json::Value& storage = Storage("localized"); - return client::JsonValueToCppValueHelper(storage); - } + const PlaylistLocalization get_localized() const; /** * Gets a reference to a mutable value of the 'localized' @@ -271,10 +267,7 @@ class PlaylistSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PlaylistLocalization mutable_localized() { - Json::Value* storage = MutableStorage("localized"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PlaylistLocalization mutable_localized(); /** * Determine if the 'publishedAt' attribute was set. @@ -371,10 +364,7 @@ class PlaylistSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -386,10 +376,7 @@ class PlaylistSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/playlist_status.cc b/service_apis/youtube/google/youtube_api/playlist_status.cc index 17e76ef..9e87c9d 100644 --- a/service_apis/youtube/google/youtube_api/playlist_status.cc +++ b/service_apis/youtube/google/youtube_api/playlist_status.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/playlist_status.h b/service_apis/youtube/google/youtube_api/playlist_status.h index 125ec35..d59c339 100644 --- a/service_apis/youtube/google/youtube_api/playlist_status.h +++ b/service_apis/youtube/google/youtube_api/playlist_status.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PLAYLIST_STATUS_H_ #define GOOGLE_YOUTUBE_API_PLAYLIST_STATUS_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PlaylistStatus : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/promoted_item.cc b/service_apis/youtube/google/youtube_api/promoted_item.cc index 0b9a51e..b71d53b 100644 --- a/service_apis/youtube/google/youtube_api/promoted_item.cc +++ b/service_apis/youtube/google/youtube_api/promoted_item.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/promoted_item.h b/service_apis/youtube/google/youtube_api/promoted_item.h index c4f6ae3..ff5af76 100644 --- a/service_apis/youtube/google/youtube_api/promoted_item.h +++ b/service_apis/youtube/google/youtube_api/promoted_item.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PROMOTED_ITEM_H_ #define GOOGLE_YOUTUBE_API_PROMOTED_ITEM_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class PromotedItem : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -146,10 +145,7 @@ class PromotedItem : public client::JsonCppData { /** * Get a reference to the value of the 'id' attribute. */ - const PromotedItemId get_id() const { - const Json::Value& storage = Storage("id"); - return client::JsonValueToCppValueHelper(storage); - } + const PromotedItemId get_id() const; /** * Gets a reference to a mutable value of the 'id' property. @@ -158,10 +154,7 @@ class PromotedItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - PromotedItemId mutable_id() { - Json::Value* storage = MutableStorage("id"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PromotedItemId mutable_id(); /** * Determine if the 'promotedByContentOwner' attribute was set. @@ -223,10 +216,7 @@ class PromotedItem : public client::JsonCppData { /** * Get a reference to the value of the 'timing' attribute. */ - const InvideoTiming get_timing() const { - const Json::Value& storage = Storage("timing"); - return client::JsonValueToCppValueHelper(storage); - } + const InvideoTiming get_timing() const; /** * Gets a reference to a mutable value of the 'timing' property. @@ -236,10 +226,7 @@ class PromotedItem : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - InvideoTiming mutable_timing() { - Json::Value* storage = MutableStorage("timing"); - return client::JsonValueToMutableCppValueHelper(storage); - } + InvideoTiming mutable_timing(); private: void operator=(const PromotedItem&); diff --git a/service_apis/youtube/google/youtube_api/promoted_item_id.cc b/service_apis/youtube/google/youtube_api/promoted_item_id.cc index 57df53c..62fd3fc 100644 --- a/service_apis/youtube/google/youtube_api/promoted_item_id.cc +++ b/service_apis/youtube/google/youtube_api/promoted_item_id.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/promoted_item_id.h b/service_apis/youtube/google/youtube_api/promoted_item_id.h index 9278fe8..3194b47 100644 --- a/service_apis/youtube/google/youtube_api/promoted_item_id.h +++ b/service_apis/youtube/google/youtube_api/promoted_item_id.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PROMOTED_ITEM_ID_H_ #define GOOGLE_YOUTUBE_API_PROMOTED_ITEM_ID_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PromotedItemId : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/property_value.cc b/service_apis/youtube/google/youtube_api/property_value.cc index 5150045..b4ca75f 100644 --- a/service_apis/youtube/google/youtube_api/property_value.cc +++ b/service_apis/youtube/google/youtube_api/property_value.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/property_value.h b/service_apis/youtube/google/youtube_api/property_value.h index 66f0b37..ee35644 100644 --- a/service_apis/youtube/google/youtube_api/property_value.h +++ b/service_apis/youtube/google/youtube_api/property_value.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_PROPERTY_VALUE_H_ #define GOOGLE_YOUTUBE_API_PROPERTY_VALUE_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class PropertyValue : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/resource_id.cc b/service_apis/youtube/google/youtube_api/resource_id.cc index 6b3e99f..15776fd 100644 --- a/service_apis/youtube/google/youtube_api/resource_id.cc +++ b/service_apis/youtube/google/youtube_api/resource_id.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/resource_id.h b/service_apis/youtube/google/youtube_api/resource_id.h index c8cf7e0..f2ccf88 100644 --- a/service_apis/youtube/google/youtube_api/resource_id.h +++ b/service_apis/youtube/google/youtube_api/resource_id.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_RESOURCE_ID_H_ #define GOOGLE_YOUTUBE_API_RESOURCE_ID_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class ResourceId : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/search_list_response.cc b/service_apis/youtube/google/youtube_api/search_list_response.cc index 955a3c9..d8ac178 100644 --- a/service_apis/youtube/google/youtube_api/search_list_response.cc +++ b/service_apis/youtube/google/youtube_api/search_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/search_list_response.h b/service_apis/youtube/google/youtube_api/search_list_response.h index 2c08c89..5236301 100644 --- a/service_apis/youtube/google/youtube_api/search_list_response.h +++ b/service_apis/youtube/google/youtube_api/search_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SEARCH_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_SEARCH_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class SearchListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class SearchListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class SearchListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class SearchListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class SearchListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/search_result.cc b/service_apis/youtube/google/youtube_api/search_result.cc index 68cdf86..5d92306 100644 --- a/service_apis/youtube/google/youtube_api/search_result.cc +++ b/service_apis/youtube/google/youtube_api/search_result.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/search_result.h b/service_apis/youtube/google/youtube_api/search_result.h index 391925f..8d37cf6 100644 --- a/service_apis/youtube/google/youtube_api/search_result.h +++ b/service_apis/youtube/google/youtube_api/search_result.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SEARCH_RESULT_H_ #define GOOGLE_YOUTUBE_API_SEARCH_RESULT_H_ @@ -55,7 +55,6 @@ using namespace googleapis; */ class SearchResult : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -148,10 +147,7 @@ class SearchResult : public client::JsonCppData { /** * Get a reference to the value of the 'id' attribute. */ - const ResourceId get_id() const { - const Json::Value& storage = Storage("id"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_id() const; /** * Gets a reference to a mutable value of the 'id' property. @@ -161,10 +157,7 @@ class SearchResult : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_id() { - Json::Value* storage = MutableStorage("id"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_id(); /** * Determine if the 'kind' attribute was set. @@ -224,10 +217,7 @@ class SearchResult : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const SearchResultSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const SearchResultSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -239,10 +229,7 @@ class SearchResult : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - SearchResultSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + SearchResultSnippet mutable_snippet(); private: void operator=(const SearchResult&); diff --git a/service_apis/youtube/google/youtube_api/search_result_snippet.cc b/service_apis/youtube/google/youtube_api/search_result_snippet.cc index 05f75fc..fe7bc3d 100644 --- a/service_apis/youtube/google/youtube_api/search_result_snippet.cc +++ b/service_apis/youtube/google/youtube_api/search_result_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/search_result_snippet.h b/service_apis/youtube/google/youtube_api/search_result_snippet.h index 7cf13b1..d7ead9a 100644 --- a/service_apis/youtube/google/youtube_api/search_result_snippet.h +++ b/service_apis/youtube/google/youtube_api/search_result_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SEARCH_RESULT_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_SEARCH_RESULT_SNIPPET_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class SearchResultSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -300,10 +299,7 @@ class SearchResultSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -315,10 +311,7 @@ class SearchResultSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/subscription.cc b/service_apis/youtube/google/youtube_api/subscription.cc index f1d706c..c762f03 100644 --- a/service_apis/youtube/google/youtube_api/subscription.cc +++ b/service_apis/youtube/google/youtube_api/subscription.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/subscription.h b/service_apis/youtube/google/youtube_api/subscription.h index b9547f4..b368118 100644 --- a/service_apis/youtube/google/youtube_api/subscription.h +++ b/service_apis/youtube/google/youtube_api/subscription.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SUBSCRIPTION_H_ #define GOOGLE_YOUTUBE_API_SUBSCRIPTION_H_ @@ -56,7 +56,6 @@ using namespace googleapis; */ class Subscription : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -113,10 +112,7 @@ class Subscription : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const SubscriptionContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const SubscriptionContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -126,10 +122,7 @@ class Subscription : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - SubscriptionContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + SubscriptionContentDetails mutable_contentDetails(); /** * Determine if the 'etag' attribute was set. @@ -263,10 +256,7 @@ class Subscription : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const SubscriptionSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const SubscriptionSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -276,10 +266,7 @@ class Subscription : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - SubscriptionSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + SubscriptionSnippet mutable_snippet(); /** * Determine if the 'subscriberSnippet' attribute was set. @@ -302,10 +289,7 @@ class Subscription : public client::JsonCppData { * Get a reference to the value of the 'subscriberSnippet' * attribute. */ - const SubscriptionSubscriberSnippet get_subscriber_snippet() const { - const Json::Value& storage = Storage("subscriberSnippet"); - return client::JsonValueToCppValueHelper(storage); - } + const SubscriptionSubscriberSnippet get_subscriber_snippet() const; /** * Gets a reference to a mutable value of the 'subscriberSnippet' @@ -315,10 +299,7 @@ class Subscription : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - SubscriptionSubscriberSnippet mutable_subscriberSnippet() { - Json::Value* storage = MutableStorage("subscriberSnippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + SubscriptionSubscriberSnippet mutable_subscriberSnippet(); private: void operator=(const Subscription&); diff --git a/service_apis/youtube/google/youtube_api/subscription_content_details.cc b/service_apis/youtube/google/youtube_api/subscription_content_details.cc index b04897c..67bcd0e 100644 --- a/service_apis/youtube/google/youtube_api/subscription_content_details.cc +++ b/service_apis/youtube/google/youtube_api/subscription_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/subscription_content_details.h b/service_apis/youtube/google/youtube_api/subscription_content_details.h index 5557e11..ed3e6cf 100644 --- a/service_apis/youtube/google/youtube_api/subscription_content_details.h +++ b/service_apis/youtube/google/youtube_api/subscription_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SUBSCRIPTION_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_SUBSCRIPTION_CONTENT_DETAILS_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class SubscriptionContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/subscription_list_response.cc b/service_apis/youtube/google/youtube_api/subscription_list_response.cc index e4c75c8..6b9ad22 100644 --- a/service_apis/youtube/google/youtube_api/subscription_list_response.cc +++ b/service_apis/youtube/google/youtube_api/subscription_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/subscription_list_response.h b/service_apis/youtube/google/youtube_api/subscription_list_response.h index 68f7f90..460edb0 100644 --- a/service_apis/youtube/google/youtube_api/subscription_list_response.h +++ b/service_apis/youtube/google/youtube_api/subscription_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SUBSCRIPTION_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_SUBSCRIPTION_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class SubscriptionListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class SubscriptionListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -195,10 +191,7 @@ class SubscriptionListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -296,20 +289,14 @@ class SubscriptionListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -370,20 +357,14 @@ class SubscriptionListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/subscription_snippet.cc b/service_apis/youtube/google/youtube_api/subscription_snippet.cc index b9a0574..f5b7f12 100644 --- a/service_apis/youtube/google/youtube_api/subscription_snippet.cc +++ b/service_apis/youtube/google/youtube_api/subscription_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/subscription_snippet.h b/service_apis/youtube/google/youtube_api/subscription_snippet.h index 5f4e990..e91dcb3 100644 --- a/service_apis/youtube/google/youtube_api/subscription_snippet.h +++ b/service_apis/youtube/google/youtube_api/subscription_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SUBSCRIPTION_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_SUBSCRIPTION_SNIPPET_H_ @@ -54,7 +54,6 @@ using namespace googleapis; */ class SubscriptionSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -259,10 +258,7 @@ class SubscriptionSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'resourceId' attribute. */ - const ResourceId get_resource_id() const { - const Json::Value& storage = Storage("resourceId"); - return client::JsonValueToCppValueHelper(storage); - } + const ResourceId get_resource_id() const; /** * Gets a reference to a mutable value of the 'resourceId' @@ -273,10 +269,7 @@ class SubscriptionSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ResourceId mutable_resourceId() { - Json::Value* storage = MutableStorage("resourceId"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ResourceId mutable_resourceId(); /** * Determine if the 'thumbnails' attribute was set. @@ -298,10 +291,7 @@ class SubscriptionSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -313,10 +303,7 @@ class SubscriptionSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.cc b/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.cc index 653cc44..009ac22 100644 --- a/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.cc +++ b/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.h b/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.h index 16f3bba..d7c9a37 100644 --- a/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.h +++ b/service_apis/youtube/google/youtube_api/subscription_subscriber_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_SUBSCRIPTION_SUBSCRIBER_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_SUBSCRIPTION_SUBSCRIBER_SNIPPET_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class SubscriptionSubscriberSnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -182,10 +181,7 @@ class SubscriptionSubscriberSnippet : public client::JsonCppData { /** * Get a reference to the value of the 'thumbnails' attribute. */ - const ThumbnailDetails get_thumbnails() const { - const Json::Value& storage = Storage("thumbnails"); - return client::JsonValueToCppValueHelper(storage); - } + const ThumbnailDetails get_thumbnails() const; /** * Gets a reference to a mutable value of the 'thumbnails' @@ -195,10 +191,7 @@ class SubscriptionSubscriberSnippet : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ThumbnailDetails mutable_thumbnails() { - Json::Value* storage = MutableStorage("thumbnails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ThumbnailDetails mutable_thumbnails(); /** * Determine if the 'title' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/thumbnail.cc b/service_apis/youtube/google/youtube_api/thumbnail.cc index 36c8731..6c43fca 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail.cc +++ b/service_apis/youtube/google/youtube_api/thumbnail.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/thumbnail.h b/service_apis/youtube/google/youtube_api/thumbnail.h index fad66ab..0d93dc0 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail.h +++ b/service_apis/youtube/google/youtube_api/thumbnail.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_THUMBNAIL_H_ #define GOOGLE_YOUTUBE_API_THUMBNAIL_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class Thumbnail : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/thumbnail_details.cc b/service_apis/youtube/google/youtube_api/thumbnail_details.cc index 8ccb9e7..06ccb4e 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail_details.cc +++ b/service_apis/youtube/google/youtube_api/thumbnail_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/thumbnail_details.h b/service_apis/youtube/google/youtube_api/thumbnail_details.h index 893daac..102480b 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail_details.h +++ b/service_apis/youtube/google/youtube_api/thumbnail_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_THUMBNAIL_DETAILS_H_ #define GOOGLE_YOUTUBE_API_THUMBNAIL_DETAILS_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class ThumbnailDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class ThumbnailDetails : public client::JsonCppData { /** * Get a reference to the value of the 'default' attribute. */ - const Thumbnail get_default() const { - const Json::Value& storage = Storage("default"); - return client::JsonValueToCppValueHelper(storage); - } + const Thumbnail get_default() const; /** * Gets a reference to a mutable value of the 'default' property. @@ -118,10 +114,7 @@ class ThumbnailDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Thumbnail mutable_default() { - Json::Value* storage = MutableStorage("default"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Thumbnail mutable_default(); /** * Determine if the 'high' attribute was set. @@ -143,10 +136,7 @@ class ThumbnailDetails : public client::JsonCppData { /** * Get a reference to the value of the 'high' attribute. */ - const Thumbnail get_high() const { - const Json::Value& storage = Storage("high"); - return client::JsonValueToCppValueHelper(storage); - } + const Thumbnail get_high() const; /** * Gets a reference to a mutable value of the 'high' property. @@ -155,10 +145,7 @@ class ThumbnailDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Thumbnail mutable_high() { - Json::Value* storage = MutableStorage("high"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Thumbnail mutable_high(); /** * Determine if the 'maxres' attribute was set. @@ -180,10 +167,7 @@ class ThumbnailDetails : public client::JsonCppData { /** * Get a reference to the value of the 'maxres' attribute. */ - const Thumbnail get_maxres() const { - const Json::Value& storage = Storage("maxres"); - return client::JsonValueToCppValueHelper(storage); - } + const Thumbnail get_maxres() const; /** * Gets a reference to a mutable value of the 'maxres' property. @@ -192,10 +176,7 @@ class ThumbnailDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Thumbnail mutable_maxres() { - Json::Value* storage = MutableStorage("maxres"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Thumbnail mutable_maxres(); /** * Determine if the 'medium' attribute was set. @@ -217,10 +198,7 @@ class ThumbnailDetails : public client::JsonCppData { /** * Get a reference to the value of the 'medium' attribute. */ - const Thumbnail get_medium() const { - const Json::Value& storage = Storage("medium"); - return client::JsonValueToCppValueHelper(storage); - } + const Thumbnail get_medium() const; /** * Gets a reference to a mutable value of the 'medium' property. @@ -229,10 +207,7 @@ class ThumbnailDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Thumbnail mutable_medium() { - Json::Value* storage = MutableStorage("medium"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Thumbnail mutable_medium(); /** * Determine if the 'standard' attribute was set. @@ -254,10 +229,7 @@ class ThumbnailDetails : public client::JsonCppData { /** * Get a reference to the value of the 'standard' attribute. */ - const Thumbnail get_standard() const { - const Json::Value& storage = Storage("standard"); - return client::JsonValueToCppValueHelper(storage); - } + const Thumbnail get_standard() const; /** * Gets a reference to a mutable value of the 'standard' @@ -267,10 +239,7 @@ class ThumbnailDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - Thumbnail mutable_standard() { - Json::Value* storage = MutableStorage("standard"); - return client::JsonValueToMutableCppValueHelper(storage); - } + Thumbnail mutable_standard(); private: void operator=(const ThumbnailDetails&); diff --git a/service_apis/youtube/google/youtube_api/thumbnail_set_response.cc b/service_apis/youtube/google/youtube_api/thumbnail_set_response.cc index 5d321ee..27ba127 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail_set_response.cc +++ b/service_apis/youtube/google/youtube_api/thumbnail_set_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/thumbnail_set_response.h b/service_apis/youtube/google/youtube_api/thumbnail_set_response.h index 9fd4050..71edf8f 100644 --- a/service_apis/youtube/google/youtube_api/thumbnail_set_response.h +++ b/service_apis/youtube/google/youtube_api/thumbnail_set_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_THUMBNAIL_SET_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_THUMBNAIL_SET_RESPONSE_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class ThumbnailSetResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class ThumbnailSetResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -193,10 +189,7 @@ class ThumbnailSetResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/token_pagination.cc b/service_apis/youtube/google/youtube_api/token_pagination.cc index eed836d..95c700d 100644 --- a/service_apis/youtube/google/youtube_api/token_pagination.cc +++ b/service_apis/youtube/google/youtube_api/token_pagination.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/token_pagination.h b/service_apis/youtube/google/youtube_api/token_pagination.h index 8fd9e5f..3ba4a14 100644 --- a/service_apis/youtube/google/youtube_api/token_pagination.h +++ b/service_apis/youtube/google/youtube_api/token_pagination.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_TOKEN_PAGINATION_H_ #define GOOGLE_YOUTUBE_API_TOKEN_PAGINATION_H_ @@ -48,7 +48,6 @@ using namespace googleapis; */ class TokenPagination : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video.cc b/service_apis/youtube/google/youtube_api/video.cc index 79d3fa7..4faaedf 100644 --- a/service_apis/youtube/google/youtube_api/video.cc +++ b/service_apis/youtube/google/youtube_api/video.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video.h b/service_apis/youtube/google/youtube_api/video.h index 24cbfda..13fb6a1 100644 --- a/service_apis/youtube/google/youtube_api/video.h +++ b/service_apis/youtube/google/youtube_api/video.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_H_ #define GOOGLE_YOUTUBE_API_VIDEO_H_ @@ -66,7 +66,6 @@ using namespace googleapis; */ class Video : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -122,10 +121,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'ageGating' attribute. */ - const VideoAgeGating get_age_gating() const { - const Json::Value& storage = Storage("ageGating"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoAgeGating get_age_gating() const; /** * Gets a reference to a mutable value of the 'ageGating' @@ -135,10 +131,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoAgeGating mutable_ageGating() { - Json::Value* storage = MutableStorage("ageGating"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoAgeGating mutable_ageGating(); /** * Determine if the 'contentDetails' attribute was set. @@ -161,10 +154,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'contentDetails' * attribute. */ - const VideoContentDetails get_content_details() const { - const Json::Value& storage = Storage("contentDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoContentDetails get_content_details() const; /** * Gets a reference to a mutable value of the 'contentDetails' @@ -175,10 +165,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoContentDetails mutable_contentDetails() { - Json::Value* storage = MutableStorage("contentDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoContentDetails mutable_contentDetails(); /** * Determine if the 'conversionPings' attribute was set. @@ -201,10 +188,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'conversionPings' * attribute. */ - const VideoConversionPings get_conversion_pings() const { - const Json::Value& storage = Storage("conversionPings"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoConversionPings get_conversion_pings() const; /** * Gets a reference to a mutable value of the 'conversionPings' @@ -215,10 +199,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoConversionPings mutable_conversionPings() { - Json::Value* storage = MutableStorage("conversionPings"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoConversionPings mutable_conversionPings(); /** * Determine if the 'etag' attribute was set. @@ -277,10 +258,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'fileDetails' attribute. */ - const VideoFileDetails get_file_details() const { - const Json::Value& storage = Storage("fileDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoFileDetails get_file_details() const; /** * Gets a reference to a mutable value of the 'fileDetails' @@ -293,10 +271,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoFileDetails mutable_fileDetails() { - Json::Value* storage = MutableStorage("fileDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoFileDetails mutable_fileDetails(); /** * Determine if the 'id' attribute was set. @@ -394,10 +369,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'liveStreamingDetails' * attribute. */ - const VideoLiveStreamingDetails get_live_streaming_details() const { - const Json::Value& storage = Storage("liveStreamingDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoLiveStreamingDetails get_live_streaming_details() const; /** * Gets a reference to a mutable value of the @@ -409,10 +381,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoLiveStreamingDetails mutable_liveStreamingDetails() { - Json::Value* storage = MutableStorage("liveStreamingDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoLiveStreamingDetails mutable_liveStreamingDetails(); /** * Determine if the 'localizations' attribute was set. @@ -434,10 +403,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'localizations' attribute. */ - const client::JsonCppAssociativeArray get_localizations() const { - const Json::Value& storage = Storage("localizations"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppAssociativeArray get_localizations() const; /** * Gets a reference to a mutable value of the 'localizations' @@ -447,10 +413,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppAssociativeArray mutable_localizations() { - Json::Value* storage = MutableStorage("localizations"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppAssociativeArray mutable_localizations(); /** * Determine if the 'monetizationDetails' attribute was set. @@ -473,10 +436,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'monetizationDetails' * attribute. */ - const VideoMonetizationDetails get_monetization_details() const { - const Json::Value& storage = Storage("monetizationDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoMonetizationDetails get_monetization_details() const; /** * Gets a reference to a mutable value of the @@ -487,10 +447,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoMonetizationDetails mutable_monetizationDetails() { - Json::Value* storage = MutableStorage("monetizationDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoMonetizationDetails mutable_monetizationDetails(); /** * Determine if the 'player' attribute was set. @@ -512,10 +469,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'player' attribute. */ - const VideoPlayer get_player() const { - const Json::Value& storage = Storage("player"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoPlayer get_player() const; /** * Gets a reference to a mutable value of the 'player' property. @@ -525,10 +479,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoPlayer mutable_player() { - Json::Value* storage = MutableStorage("player"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoPlayer mutable_player(); /** * Determine if the 'processingDetails' attribute was set. @@ -551,10 +502,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'processingDetails' * attribute. */ - const VideoProcessingDetails get_processing_details() const { - const Json::Value& storage = Storage("processingDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoProcessingDetails get_processing_details() const; /** * Gets a reference to a mutable value of the 'processingDetails' @@ -573,10 +521,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoProcessingDetails mutable_processingDetails() { - Json::Value* storage = MutableStorage("processingDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoProcessingDetails mutable_processingDetails(); /** * Determine if the 'projectDetails' attribute was set. @@ -599,10 +544,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'projectDetails' * attribute. */ - const VideoProjectDetails get_project_details() const { - const Json::Value& storage = Storage("projectDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoProjectDetails get_project_details() const; /** * Gets a reference to a mutable value of the 'projectDetails' @@ -613,10 +555,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoProjectDetails mutable_projectDetails() { - Json::Value* storage = MutableStorage("projectDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoProjectDetails mutable_projectDetails(); /** * Determine if the 'recordingDetails' attribute was set. @@ -639,10 +578,7 @@ class Video : public client::JsonCppData { * Get a reference to the value of the 'recordingDetails' * attribute. */ - const VideoRecordingDetails get_recording_details() const { - const Json::Value& storage = Storage("recordingDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoRecordingDetails get_recording_details() const; /** * Gets a reference to a mutable value of the 'recordingDetails' @@ -653,10 +589,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoRecordingDetails mutable_recordingDetails() { - Json::Value* storage = MutableStorage("recordingDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoRecordingDetails mutable_recordingDetails(); /** * Determine if the 'snippet' attribute was set. @@ -678,10 +611,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const VideoSnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoSnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -691,10 +621,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoSnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoSnippet mutable_snippet(); /** * Determine if the 'statistics' attribute was set. @@ -716,10 +643,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'statistics' attribute. */ - const VideoStatistics get_statistics() const { - const Json::Value& storage = Storage("statistics"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoStatistics get_statistics() const; /** * Gets a reference to a mutable value of the 'statistics' @@ -729,10 +653,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoStatistics mutable_statistics() { - Json::Value* storage = MutableStorage("statistics"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoStatistics mutable_statistics(); /** * Determine if the 'status' attribute was set. @@ -754,10 +675,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'status' attribute. */ - const VideoStatus get_status() const { - const Json::Value& storage = Storage("status"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoStatus get_status() const; /** * Gets a reference to a mutable value of the 'status' property. @@ -767,10 +685,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoStatus mutable_status() { - Json::Value* storage = MutableStorage("status"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoStatus mutable_status(); /** * Determine if the 'suggestions' attribute was set. @@ -792,10 +707,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'suggestions' attribute. */ - const VideoSuggestions get_suggestions() const { - const Json::Value& storage = Storage("suggestions"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoSuggestions get_suggestions() const; /** * Gets a reference to a mutable value of the 'suggestions' @@ -807,10 +719,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoSuggestions mutable_suggestions() { - Json::Value* storage = MutableStorage("suggestions"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoSuggestions mutable_suggestions(); /** * Determine if the 'topicDetails' attribute was set. @@ -832,10 +741,7 @@ class Video : public client::JsonCppData { /** * Get a reference to the value of the 'topicDetails' attribute. */ - const VideoTopicDetails get_topic_details() const { - const Json::Value& storage = Storage("topicDetails"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoTopicDetails get_topic_details() const; /** * Gets a reference to a mutable value of the 'topicDetails' @@ -846,10 +752,7 @@ class Video : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoTopicDetails mutable_topicDetails() { - Json::Value* storage = MutableStorage("topicDetails"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoTopicDetails mutable_topicDetails(); private: void operator=(const Video&); diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report.cc b/service_apis/youtube/google/youtube_api/video_abuse_report.cc new file mode 100644 index 0000000..91362be --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// VideoAbuseReport +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/video_abuse_report.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +VideoAbuseReport* VideoAbuseReport::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +VideoAbuseReport::VideoAbuseReport(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +VideoAbuseReport::VideoAbuseReport(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +VideoAbuseReport::~VideoAbuseReport() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report.h b/service_apis/youtube/google/youtube_api/video_abuse_report.h new file mode 100644 index 0000000..94e4d04 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report.h @@ -0,0 +1,279 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_H_ +#define GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class VideoAbuseReport : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static VideoAbuseReport* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReport(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReport(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~VideoAbuseReport(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::VideoAbuseReport + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::VideoAbuseReport"); + } + + /** + * Determine if the 'comments' attribute was set. + * + * @return true if the 'comments' attribute was set. + */ + bool has_comments() const { + return Storage().isMember("comments"); + } + + /** + * Clears the 'comments' attribute. + */ + void clear_comments() { + MutableStorage()->removeMember("comments"); + } + + + /** + * Get the value of the 'comments' attribute. + */ + const StringPiece get_comments() const { + const Json::Value& v = Storage("comments"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'comments' attribute. + * + * Additional comments regarding the abuse report. + * + * @param[in] value The new value. + */ + void set_comments(const StringPiece& value) { + *MutableStorage("comments") = value.data(); + } + + /** + * Determine if the 'language' attribute was set. + * + * @return true if the 'language' attribute was set. + */ + bool has_language() const { + return Storage().isMember("language"); + } + + /** + * Clears the 'language' attribute. + */ + void clear_language() { + MutableStorage()->removeMember("language"); + } + + + /** + * Get the value of the 'language' attribute. + */ + const StringPiece get_language() const { + const Json::Value& v = Storage("language"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'language' attribute. + * + * The language that the content was viewed in. + * + * @param[in] value The new value. + */ + void set_language(const StringPiece& value) { + *MutableStorage("language") = value.data(); + } + + /** + * Determine if the 'reasonId' attribute was set. + * + * @return true if the 'reasonId' attribute was set. + */ + bool has_reason_id() const { + return Storage().isMember("reasonId"); + } + + /** + * Clears the 'reasonId' attribute. + */ + void clear_reason_id() { + MutableStorage()->removeMember("reasonId"); + } + + + /** + * Get the value of the 'reasonId' attribute. + */ + const StringPiece get_reason_id() const { + const Json::Value& v = Storage("reasonId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'reasonId' attribute. + * + * The high-level, or primary, reason that the content is abusive. The value + * is an abuse report reason ID. + * + * @param[in] value The new value. + */ + void set_reason_id(const StringPiece& value) { + *MutableStorage("reasonId") = value.data(); + } + + /** + * Determine if the 'secondaryReasonId' attribute was set. + * + * @return true if the 'secondaryReasonId' attribute was set. + */ + bool has_secondary_reason_id() const { + return Storage().isMember("secondaryReasonId"); + } + + /** + * Clears the 'secondaryReasonId' attribute. + */ + void clear_secondary_reason_id() { + MutableStorage()->removeMember("secondaryReasonId"); + } + + + /** + * Get the value of the 'secondaryReasonId' attribute. + */ + const StringPiece get_secondary_reason_id() const { + const Json::Value& v = Storage("secondaryReasonId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'secondaryReasonId' attribute. + * + * The specific, or secondary, reason that this content is abusive (if + * available). The value is an abuse report reason ID that is a valid + * secondary reason for the primary reason. + * + * @param[in] value The new value. + */ + void set_secondary_reason_id(const StringPiece& value) { + *MutableStorage("secondaryReasonId") = value.data(); + } + + /** + * Determine if the 'videoId' attribute was set. + * + * @return true if the 'videoId' attribute was set. + */ + bool has_video_id() const { + return Storage().isMember("videoId"); + } + + /** + * Clears the 'videoId' attribute. + */ + void clear_video_id() { + MutableStorage()->removeMember("videoId"); + } + + + /** + * Get the value of the 'videoId' attribute. + */ + const StringPiece get_video_id() const { + const Json::Value& v = Storage("videoId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'videoId' attribute. + * + * The ID that YouTube uses to uniquely identify the video. + * + * @param[in] value The new value. + */ + void set_video_id(const StringPiece& value) { + *MutableStorage("videoId") = value.data(); + } + + private: + void operator=(const VideoAbuseReport&); +}; // VideoAbuseReport +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_H_ diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason.cc b/service_apis/youtube/google/youtube_api/video_abuse_report_reason.cc new file mode 100644 index 0000000..63bf7fe --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// VideoAbuseReportReason +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/video_abuse_report_reason.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_reason_snippet.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +VideoAbuseReportReason* VideoAbuseReportReason::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +VideoAbuseReportReason::VideoAbuseReportReason(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +VideoAbuseReportReason::VideoAbuseReportReason(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +VideoAbuseReportReason::~VideoAbuseReportReason() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason.h b/service_apis/youtube/google/youtube_api/video_abuse_report_reason.h new file mode 100644 index 0000000..880034d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason.h @@ -0,0 +1,238 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_H_ +#define GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_reason_snippet.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * A videoAbuseReportReason resource identifies a reason that a video could be + * reported as abusive. Video abuse report reasons are used with + * video.ReportAbuse. + * + * @ingroup DataObject + */ +class VideoAbuseReportReason : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static VideoAbuseReportReason* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReason(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReason(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~VideoAbuseReportReason(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::VideoAbuseReportReason + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::VideoAbuseReportReason"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'id' attribute was set. + * + * @return true if the 'id' attribute was set. + */ + bool has_id() const { + return Storage().isMember("id"); + } + + /** + * Clears the 'id' attribute. + */ + void clear_id() { + MutableStorage()->removeMember("id"); + } + + + /** + * Get the value of the 'id' attribute. + */ + const StringPiece get_id() const { + const Json::Value& v = Storage("id"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'id' attribute. + * + * The ID of this abuse report reason. + * + * @param[in] value The new value. + */ + void set_id(const StringPiece& value) { + *MutableStorage("id") = value.data(); + } + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#videoAbuseReportReason". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'snippet' attribute was set. + * + * @return true if the 'snippet' attribute was set. + */ + bool has_snippet() const { + return Storage().isMember("snippet"); + } + + /** + * Clears the 'snippet' attribute. + */ + void clear_snippet() { + MutableStorage()->removeMember("snippet"); + } + + + /** + * Get a reference to the value of the 'snippet' attribute. + */ + const VideoAbuseReportReasonSnippet get_snippet() const; + + /** + * Gets a reference to a mutable value of the 'snippet' property. + * + * The snippet object contains basic details about the abuse report reason. + * + * @return The result can be modified to change the attribute value. + */ + VideoAbuseReportReasonSnippet mutable_snippet(); + + private: + void operator=(const VideoAbuseReportReason&); +}; // VideoAbuseReportReason +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_H_ diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.cc b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.cc new file mode 100644 index 0000000..afe84d2 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// VideoAbuseReportReasonListResponse +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/video_abuse_report_reason_list_response.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_reason.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +VideoAbuseReportReasonListResponse* VideoAbuseReportReasonListResponse::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +VideoAbuseReportReasonListResponse::VideoAbuseReportReasonListResponse(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +VideoAbuseReportReasonListResponse::VideoAbuseReportReasonListResponse(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +VideoAbuseReportReasonListResponse::~VideoAbuseReportReasonListResponse() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.h b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.h new file mode 100644 index 0000000..9109082 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_list_response.h @@ -0,0 +1,273 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_LIST_RESPONSE_H_ +#define GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_LIST_RESPONSE_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_reason.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class VideoAbuseReportReasonListResponse : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static VideoAbuseReportReasonListResponse* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReasonListResponse(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReasonListResponse(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~VideoAbuseReportReasonListResponse(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::VideoAbuseReportReasonListResponse + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::VideoAbuseReportReasonListResponse"); + } + + /** + * Determine if the 'etag' attribute was set. + * + * @return true if the 'etag' attribute was set. + */ + bool has_etag() const { + return Storage().isMember("etag"); + } + + /** + * Clears the 'etag' attribute. + */ + void clear_etag() { + MutableStorage()->removeMember("etag"); + } + + + /** + * Get the value of the 'etag' attribute. + */ + const StringPiece get_etag() const { + const Json::Value& v = Storage("etag"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'etag' attribute. + * + * Etag of this resource. + * + * @param[in] value The new value. + */ + void set_etag(const StringPiece& value) { + *MutableStorage("etag") = value.data(); + } + + /** + * Determine if the 'eventId' attribute was set. + * + * @return true if the 'eventId' attribute was set. + */ + bool has_event_id() const { + return Storage().isMember("eventId"); + } + + /** + * Clears the 'eventId' attribute. + */ + void clear_event_id() { + MutableStorage()->removeMember("eventId"); + } + + + /** + * Get the value of the 'eventId' attribute. + */ + const StringPiece get_event_id() const { + const Json::Value& v = Storage("eventId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'eventId' attribute. + * + * Serialized EventId of the request which produced this response. + * + * @param[in] value The new value. + */ + void set_event_id(const StringPiece& value) { + *MutableStorage("eventId") = value.data(); + } + + /** + * Determine if the 'items' attribute was set. + * + * @return true if the 'items' attribute was set. + */ + bool has_items() const { + return Storage().isMember("items"); + } + + /** + * Clears the 'items' attribute. + */ + void clear_items() { + MutableStorage()->removeMember("items"); + } + + + /** + * Get a reference to the value of the 'items' attribute. + */ + const client::JsonCppArray get_items() const; + + /** + * Gets a reference to a mutable value of the 'items' property. + * + * A list of valid abuse reasons that are used with video.ReportAbuse. + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_items(); + + /** + * Determine if the 'kind' attribute was set. + * + * @return true if the 'kind' attribute was set. + */ + bool has_kind() const { + return Storage().isMember("kind"); + } + + /** + * Clears the 'kind' attribute. + */ + void clear_kind() { + MutableStorage()->removeMember("kind"); + } + + + /** + * Get the value of the 'kind' attribute. + */ + const StringPiece get_kind() const { + const Json::Value& v = Storage("kind"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'kind' attribute. + * + * Identifies what kind of resource this is. Value: the fixed string + * "youtube#videoAbuseReportReasonListResponse". + * + * @param[in] value The new value. + */ + void set_kind(const StringPiece& value) { + *MutableStorage("kind") = value.data(); + } + + /** + * Determine if the 'visitorId' attribute was set. + * + * @return true if the 'visitorId' attribute was set. + */ + bool has_visitor_id() const { + return Storage().isMember("visitorId"); + } + + /** + * Clears the 'visitorId' attribute. + */ + void clear_visitor_id() { + MutableStorage()->removeMember("visitorId"); + } + + + /** + * Get the value of the 'visitorId' attribute. + */ + const StringPiece get_visitor_id() const { + const Json::Value& v = Storage("visitorId"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'visitorId' attribute. + * + * The visitorId identifies the visitor. + * + * @param[in] value The new value. + */ + void set_visitor_id(const StringPiece& value) { + *MutableStorage("visitorId") = value.data(); + } + + private: + void operator=(const VideoAbuseReportReasonListResponse&); +}; // VideoAbuseReportReasonListResponse +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_LIST_RESPONSE_H_ diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.cc b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.cc new file mode 100644 index 0000000..38a0f1e --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.cc @@ -0,0 +1,64 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// VideoAbuseReportReasonSnippet +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/video_abuse_report_reason_snippet.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_secondary_reason.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +VideoAbuseReportReasonSnippet* VideoAbuseReportReasonSnippet::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +VideoAbuseReportReasonSnippet::VideoAbuseReportReasonSnippet(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +VideoAbuseReportReasonSnippet::VideoAbuseReportReasonSnippet(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +VideoAbuseReportReasonSnippet::~VideoAbuseReportReasonSnippet() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.h b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.h new file mode 100644 index 0000000..d987f35 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_reason_snippet.h @@ -0,0 +1,164 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_SNIPPET_H_ +#define GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_SNIPPET_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +#include "google/youtube_api/video_abuse_report_secondary_reason.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * Basic details about a video category, such as its localized title. + * + * @ingroup DataObject + */ +class VideoAbuseReportReasonSnippet : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static VideoAbuseReportReasonSnippet* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReasonSnippet(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportReasonSnippet(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~VideoAbuseReportReasonSnippet(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::VideoAbuseReportReasonSnippet + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::VideoAbuseReportReasonSnippet"); + } + + /** + * Determine if the 'label' attribute was set. + * + * @return true if the 'label' attribute was set. + */ + bool has_label() const { + return Storage().isMember("label"); + } + + /** + * Clears the 'label' attribute. + */ + void clear_label() { + MutableStorage()->removeMember("label"); + } + + + /** + * Get the value of the 'label' attribute. + */ + const StringPiece get_label() const { + const Json::Value& v = Storage("label"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'label' attribute. + * + * The localized label belonging to this abuse report reason. + * + * @param[in] value The new value. + */ + void set_label(const StringPiece& value) { + *MutableStorage("label") = value.data(); + } + + /** + * Determine if the 'secondaryReasons' attribute was set. + * + * @return true if the 'secondaryReasons' attribute was set. + */ + bool has_secondary_reasons() const { + return Storage().isMember("secondaryReasons"); + } + + /** + * Clears the 'secondaryReasons' attribute. + */ + void clear_secondary_reasons() { + MutableStorage()->removeMember("secondaryReasons"); + } + + + /** + * Get a reference to the value of the 'secondaryReasons' + * attribute. + */ + const client::JsonCppArray get_secondary_reasons() const; + + /** + * Gets a reference to a mutable value of the 'secondaryReasons' + * property. + * + * The secondary reasons associated with this reason, if any are available. + * (There might be 0 or more.). + * + * @return The result can be modified to change the attribute value. + */ + client::JsonCppArray mutable_secondaryReasons(); + + private: + void operator=(const VideoAbuseReportReasonSnippet&); +}; // VideoAbuseReportReasonSnippet +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_REASON_SNIPPET_H_ diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.cc b/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.cc new file mode 100644 index 0000000..9beaa9d --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.cc @@ -0,0 +1,62 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Description: +// Programmatic access to YouTube features. +// Classes: +// VideoAbuseReportSecondaryReason +// Documentation: +// https://developers.google.com/youtube/v3 + +#include "google/youtube_api/video_abuse_report_secondary_reason.h" +#include +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + + +#include +#include "googleapis/strings/strcat.h" + +namespace google_youtube_api { +using namespace googleapis; + + +// Object factory method (static). +VideoAbuseReportSecondaryReason* VideoAbuseReportSecondaryReason::New() { + return new client::JsonCppCapsule; +} + +// Standard immutable constructor. +VideoAbuseReportSecondaryReason::VideoAbuseReportSecondaryReason(const Json::Value& storage) + : client::JsonCppData(storage) { +} + +// Standard mutable constructor. +VideoAbuseReportSecondaryReason::VideoAbuseReportSecondaryReason(Json::Value* storage) + : client::JsonCppData(storage) { +} + +// Standard destructor. +VideoAbuseReportSecondaryReason::~VideoAbuseReportSecondaryReason() { +} +} // namespace google_youtube_api diff --git a/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.h b/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.h new file mode 100644 index 0000000..fc8c1c2 --- /dev/null +++ b/service_apis/youtube/google/youtube_api/video_abuse_report_secondary_reason.h @@ -0,0 +1,165 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 + +// ---------------------------------------------------------------------------- +// NOTE: This file is generated from Google APIs Discovery Service. +// Service: +// YouTube Data API (youtube/v3) +// Generated from: +// Version: v3 +// Revision: 139 +// Generated by: +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 +#ifndef GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_SECONDARY_REASON_H_ +#define GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_SECONDARY_REASON_H_ + +#include +#include "googleapis/base/macros.h" +#include "googleapis/client/data/jsoncpp_data.h" +#include "googleapis/strings/stringpiece.h" + +namespace Json { +class Value; +} // namespace Json + +namespace google_youtube_api { +using namespace googleapis; + +/** + * No description provided. + * + * @ingroup DataObject + */ +class VideoAbuseReportSecondaryReason : public client::JsonCppData { + public: + /** + * Creates a new default instance. + * + * @return Ownership is passed back to the caller. + */ + static VideoAbuseReportSecondaryReason* New(); + + /** + * Standard constructor for an immutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportSecondaryReason(const Json::Value& storage); + + /** + * Standard constructor for a mutable data object instance. + * + * @param[in] storage The underlying data storage for this instance. + */ + explicit VideoAbuseReportSecondaryReason(Json::Value* storage); + + /** + * Standard destructor. + */ + virtual ~VideoAbuseReportSecondaryReason(); + + /** + * Returns a string denoting the type of this data object. + * + * @return google_youtube_api::VideoAbuseReportSecondaryReason + */ + const StringPiece GetTypeName() const { + return StringPiece("google_youtube_api::VideoAbuseReportSecondaryReason"); + } + + /** + * Determine if the 'id' attribute was set. + * + * @return true if the 'id' attribute was set. + */ + bool has_id() const { + return Storage().isMember("id"); + } + + /** + * Clears the 'id' attribute. + */ + void clear_id() { + MutableStorage()->removeMember("id"); + } + + + /** + * Get the value of the 'id' attribute. + */ + const StringPiece get_id() const { + const Json::Value& v = Storage("id"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'id' attribute. + * + * The ID of this abuse report secondary reason. + * + * @param[in] value The new value. + */ + void set_id(const StringPiece& value) { + *MutableStorage("id") = value.data(); + } + + /** + * Determine if the 'label' attribute was set. + * + * @return true if the 'label' attribute was set. + */ + bool has_label() const { + return Storage().isMember("label"); + } + + /** + * Clears the 'label' attribute. + */ + void clear_label() { + MutableStorage()->removeMember("label"); + } + + + /** + * Get the value of the 'label' attribute. + */ + const StringPiece get_label() const { + const Json::Value& v = Storage("label"); + if (v == Json::Value::null) return StringPiece(""); + return StringPiece(v.asCString()); + } + + /** + * Change the 'label' attribute. + * + * The localized label for this abuse report secondary reason. + * + * @param[in] value The new value. + */ + void set_label(const StringPiece& value) { + *MutableStorage("label") = value.data(); + } + + private: + void operator=(const VideoAbuseReportSecondaryReason&); +}; // VideoAbuseReportSecondaryReason +} // namespace google_youtube_api +#endif // GOOGLE_YOUTUBE_API_VIDEO_ABUSE_REPORT_SECONDARY_REASON_H_ diff --git a/service_apis/youtube/google/youtube_api/video_age_gating.cc b/service_apis/youtube/google/youtube_api/video_age_gating.cc index 33449bf..a6ded29 100644 --- a/service_apis/youtube/google/youtube_api/video_age_gating.cc +++ b/service_apis/youtube/google/youtube_api/video_age_gating.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_age_gating.h b/service_apis/youtube/google/youtube_api/video_age_gating.h index 5986fa9..683b4f0 100644 --- a/service_apis/youtube/google/youtube_api/video_age_gating.h +++ b/service_apis/youtube/google/youtube_api/video_age_gating.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_AGE_GATING_H_ #define GOOGLE_YOUTUBE_API_VIDEO_AGE_GATING_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class VideoAgeGating : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_category.cc b/service_apis/youtube/google/youtube_api/video_category.cc index 89ef9e7..ded69ef 100644 --- a/service_apis/youtube/google/youtube_api/video_category.cc +++ b/service_apis/youtube/google/youtube_api/video_category.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_category.h b/service_apis/youtube/google/youtube_api/video_category.h index a126791..45253dc 100644 --- a/service_apis/youtube/google/youtube_api/video_category.h +++ b/service_apis/youtube/google/youtube_api/video_category.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_H_ @@ -52,7 +52,6 @@ using namespace googleapis; */ class VideoCategory : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -220,10 +219,7 @@ class VideoCategory : public client::JsonCppData { /** * Get a reference to the value of the 'snippet' attribute. */ - const VideoCategorySnippet get_snippet() const { - const Json::Value& storage = Storage("snippet"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoCategorySnippet get_snippet() const; /** * Gets a reference to a mutable value of the 'snippet' property. @@ -233,10 +229,7 @@ class VideoCategory : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoCategorySnippet mutable_snippet() { - Json::Value* storage = MutableStorage("snippet"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoCategorySnippet mutable_snippet(); private: void operator=(const VideoCategory&); diff --git a/service_apis/youtube/google/youtube_api/video_category_list_response.cc b/service_apis/youtube/google/youtube_api/video_category_list_response.cc index 61bf371..3a552b8 100644 --- a/service_apis/youtube/google/youtube_api/video_category_list_response.cc +++ b/service_apis/youtube/google/youtube_api/video_category_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_category_list_response.h b/service_apis/youtube/google/youtube_api/video_category_list_response.h index 246b802..1675091 100644 --- a/service_apis/youtube/google/youtube_api/video_category_list_response.h +++ b/service_apis/youtube/google/youtube_api/video_category_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class VideoCategoryListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class VideoCategoryListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -197,10 +193,7 @@ class VideoCategoryListResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. @@ -298,20 +291,14 @@ class VideoCategoryListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'pageInfo' attribute. */ - const PageInfo get_page_info() const { - const Json::Value& storage = Storage("pageInfo"); - return client::JsonValueToCppValueHelper(storage); - } + const PageInfo get_page_info() const; /** * Gets a reference to a mutable value of the 'pageInfo' * property. * @return The result can be modified to change the attribute value. */ - PageInfo mutable_pageInfo() { - Json::Value* storage = MutableStorage("pageInfo"); - return client::JsonValueToMutableCppValueHelper(storage); - } + PageInfo mutable_pageInfo(); /** * Determine if the 'prevPageToken' attribute was set. @@ -372,20 +359,14 @@ class VideoCategoryListResponse : public client::JsonCppData { * Get a reference to the value of the 'tokenPagination' * attribute. */ - const TokenPagination get_token_pagination() const { - const Json::Value& storage = Storage("tokenPagination"); - return client::JsonValueToCppValueHelper(storage); - } + const TokenPagination get_token_pagination() const; /** * Gets a reference to a mutable value of the 'tokenPagination' * property. * @return The result can be modified to change the attribute value. */ - TokenPagination mutable_tokenPagination() { - Json::Value* storage = MutableStorage("tokenPagination"); - return client::JsonValueToMutableCppValueHelper(storage); - } + TokenPagination mutable_tokenPagination(); /** * Determine if the 'visitorId' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/video_category_snippet.cc b/service_apis/youtube/google/youtube_api/video_category_snippet.cc index 7ed0f3f..b45fca7 100644 --- a/service_apis/youtube/google/youtube_api/video_category_snippet.cc +++ b/service_apis/youtube/google/youtube_api/video_category_snippet.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_category_snippet.h b/service_apis/youtube/google/youtube_api/video_category_snippet.h index 73199f3..1c7afdd 100644 --- a/service_apis/youtube/google/youtube_api/video_category_snippet.h +++ b/service_apis/youtube/google/youtube_api/video_category_snippet.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_SNIPPET_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CATEGORY_SNIPPET_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class VideoCategorySnippet : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_content_details.cc b/service_apis/youtube/google/youtube_api/video_content_details.cc index ba2fafe..76d2b2c 100644 --- a/service_apis/youtube/google/youtube_api/video_content_details.cc +++ b/service_apis/youtube/google/youtube_api/video_content_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_content_details.h b/service_apis/youtube/google/youtube_api/video_content_details.h index 431a947..29c2644 100644 --- a/service_apis/youtube/google/youtube_api/video_content_details.h +++ b/service_apis/youtube/google/youtube_api/video_content_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CONTENT_DETAILS_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CONTENT_DETAILS_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class VideoContentDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -146,10 +145,7 @@ class VideoContentDetails : public client::JsonCppData { /** * Get a reference to the value of the 'contentRating' attribute. */ - const ContentRating get_content_rating() const { - const Json::Value& storage = Storage("contentRating"); - return client::JsonValueToCppValueHelper(storage); - } + const ContentRating get_content_rating() const; /** * Gets a reference to a mutable value of the 'contentRating' @@ -159,10 +155,7 @@ class VideoContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - ContentRating mutable_contentRating() { - Json::Value* storage = MutableStorage("contentRating"); - return client::JsonValueToMutableCppValueHelper(storage); - } + ContentRating mutable_contentRating(); /** * Determine if the 'countryRestriction' attribute was set. @@ -185,10 +178,7 @@ class VideoContentDetails : public client::JsonCppData { * Get a reference to the value of the 'countryRestriction' * attribute. */ - const AccessPolicy get_country_restriction() const { - const Json::Value& storage = Storage("countryRestriction"); - return client::JsonValueToCppValueHelper(storage); - } + const AccessPolicy get_country_restriction() const; /** * Gets a reference to a mutable value of the @@ -199,10 +189,7 @@ class VideoContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - AccessPolicy mutable_countryRestriction() { - Json::Value* storage = MutableStorage("countryRestriction"); - return client::JsonValueToMutableCppValueHelper(storage); - } + AccessPolicy mutable_countryRestriction(); /** * Determine if the 'definition' attribute was set. @@ -382,10 +369,7 @@ class VideoContentDetails : public client::JsonCppData { * Get a reference to the value of the 'regionRestriction' * attribute. */ - const VideoContentDetailsRegionRestriction get_region_restriction() const { - const Json::Value& storage = Storage("regionRestriction"); - return client::JsonValueToCppValueHelper(storage); - } + const VideoContentDetailsRegionRestriction get_region_restriction() const; /** * Gets a reference to a mutable value of the 'regionRestriction' @@ -398,10 +382,7 @@ class VideoContentDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - VideoContentDetailsRegionRestriction mutable_regionRestriction() { - Json::Value* storage = MutableStorage("regionRestriction"); - return client::JsonValueToMutableCppValueHelper(storage); - } + VideoContentDetailsRegionRestriction mutable_regionRestriction(); private: void operator=(const VideoContentDetails&); diff --git a/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.cc b/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.cc index aaba7c4..7810015 100644 --- a/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.cc +++ b/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.h b/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.h index b36ec91..1c6a1b6 100644 --- a/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.h +++ b/service_apis/youtube/google/youtube_api/video_content_details_region_restriction.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CONTENT_DETAILS_REGION_RESTRICTION_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CONTENT_DETAILS_REGION_RESTRICTION_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class VideoContentDetailsRegionRestriction : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_conversion_ping.cc b/service_apis/youtube/google/youtube_api/video_conversion_ping.cc index 4897e58..4efaed4 100644 --- a/service_apis/youtube/google/youtube_api/video_conversion_ping.cc +++ b/service_apis/youtube/google/youtube_api/video_conversion_ping.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_conversion_ping.h b/service_apis/youtube/google/youtube_api/video_conversion_ping.h index 24b1241..004b9de 100644 --- a/service_apis/youtube/google/youtube_api/video_conversion_ping.h +++ b/service_apis/youtube/google/youtube_api/video_conversion_ping.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CONVERSION_PING_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CONVERSION_PING_H_ @@ -49,7 +49,6 @@ using namespace googleapis; */ class VideoConversionPing : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_conversion_pings.cc b/service_apis/youtube/google/youtube_api/video_conversion_pings.cc index f818ba8..47f5756 100644 --- a/service_apis/youtube/google/youtube_api/video_conversion_pings.cc +++ b/service_apis/youtube/google/youtube_api/video_conversion_pings.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_conversion_pings.h b/service_apis/youtube/google/youtube_api/video_conversion_pings.h index 54270bd..cd72d87 100644 --- a/service_apis/youtube/google/youtube_api/video_conversion_pings.h +++ b/service_apis/youtube/google/youtube_api/video_conversion_pings.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_CONVERSION_PINGS_H_ #define GOOGLE_YOUTUBE_API_VIDEO_CONVERSION_PINGS_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class VideoConversionPings : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -106,10 +105,7 @@ class VideoConversionPings : public client::JsonCppData { /** * Get a reference to the value of the 'pings' attribute. */ - const client::JsonCppArray get_pings() const { - const Json::Value& storage = Storage("pings"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_pings() const; /** * Gets a reference to a mutable value of the 'pings' property. @@ -120,10 +116,7 @@ class VideoConversionPings : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_pings() { - Json::Value* storage = MutableStorage("pings"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_pings(); private: void operator=(const VideoConversionPings&); diff --git a/service_apis/youtube/google/youtube_api/video_file_details.cc b/service_apis/youtube/google/youtube_api/video_file_details.cc index 6b5193e..87e654a 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details.cc +++ b/service_apis/youtube/google/youtube_api/video_file_details.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_file_details.h b/service_apis/youtube/google/youtube_api/video_file_details.h index 356e7ba..88d0dae 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details.h +++ b/service_apis/youtube/google/youtube_api/video_file_details.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_H_ #define GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_H_ @@ -56,7 +56,6 @@ using namespace googleapis; */ class VideoFileDetails : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -112,10 +111,7 @@ class VideoFileDetails : public client::JsonCppData { /** * Get a reference to the value of the 'audioStreams' attribute. */ - const client::JsonCppArray get_audio_streams() const { - const Json::Value& storage = Storage("audioStreams"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_audio_streams() const; /** * Gets a reference to a mutable value of the 'audioStreams' @@ -126,10 +122,7 @@ class VideoFileDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_audioStreams() { - Json::Value* storage = MutableStorage("audioStreams"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_audioStreams(); /** * Determine if the 'bitrateBps' attribute was set. @@ -421,10 +414,7 @@ class VideoFileDetails : public client::JsonCppData { * Get a reference to the value of the 'recordingLocation' * attribute. */ - const GeoPoint get_recording_location() const { - const Json::Value& storage = Storage("recordingLocation"); - return client::JsonValueToCppValueHelper(storage); - } + const GeoPoint get_recording_location() const; /** * Gets a reference to a mutable value of the 'recordingLocation' @@ -435,10 +425,7 @@ class VideoFileDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - GeoPoint mutable_recordingLocation() { - Json::Value* storage = MutableStorage("recordingLocation"); - return client::JsonValueToMutableCppValueHelper(storage); - } + GeoPoint mutable_recordingLocation(); /** * Determine if the 'videoStreams' attribute was set. @@ -460,10 +447,7 @@ class VideoFileDetails : public client::JsonCppData { /** * Get a reference to the value of the 'videoStreams' attribute. */ - const client::JsonCppArray get_video_streams() const { - const Json::Value& storage = Storage("videoStreams"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_video_streams() const; /** * Gets a reference to a mutable value of the 'videoStreams' @@ -474,10 +458,7 @@ class VideoFileDetails : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_videoStreams() { - Json::Value* storage = MutableStorage("videoStreams"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_videoStreams(); private: void operator=(const VideoFileDetails&); diff --git a/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.cc b/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.cc index 176a7ae..72a4c04 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.cc +++ b/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.h b/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.h index fbde7fa..2a8439b 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.h +++ b/service_apis/youtube/google/youtube_api/video_file_details_audio_stream.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_AUDIO_STREAM_H_ #define GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_AUDIO_STREAM_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class VideoFileDetailsAudioStream : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_file_details_video_stream.cc b/service_apis/youtube/google/youtube_api/video_file_details_video_stream.cc index e61fd91..372d31e 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details_video_stream.cc +++ b/service_apis/youtube/google/youtube_api/video_file_details_video_stream.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_file_details_video_stream.h b/service_apis/youtube/google/youtube_api/video_file_details_video_stream.h index 68469bd..9a92c99 100644 --- a/service_apis/youtube/google/youtube_api/video_file_details_video_stream.h +++ b/service_apis/youtube/google/youtube_api/video_file_details_video_stream.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_VIDEO_STREAM_H_ #define GOOGLE_YOUTUBE_API_VIDEO_FILE_DETAILS_VIDEO_STREAM_H_ @@ -50,7 +50,6 @@ using namespace googleapis; */ class VideoFileDetailsVideoStream : public client::JsonCppData { public: - /** * Creates a new default instance. * diff --git a/service_apis/youtube/google/youtube_api/video_get_rating_response.cc b/service_apis/youtube/google/youtube_api/video_get_rating_response.cc index aaaa45b..7802dd3 100644 --- a/service_apis/youtube/google/youtube_api/video_get_rating_response.cc +++ b/service_apis/youtube/google/youtube_api/video_get_rating_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_get_rating_response.h b/service_apis/youtube/google/youtube_api/video_get_rating_response.h index 8f088f0..bce0954 100644 --- a/service_apis/youtube/google/youtube_api/video_get_rating_response.h +++ b/service_apis/youtube/google/youtube_api/video_get_rating_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_GET_RATING_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_VIDEO_GET_RATING_RESPONSE_H_ @@ -51,7 +51,6 @@ using namespace googleapis; */ class VideoGetRatingResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -181,10 +180,7 @@ class VideoGetRatingResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArray get_items() const { - const Json::Value& storage = Storage("items"); - return client::JsonValueToCppValueHelper >(storage); - } + const client::JsonCppArray get_items() const; /** * Gets a reference to a mutable value of the 'items' property. @@ -193,10 +189,7 @@ class VideoGetRatingResponse : public client::JsonCppData { * * @return The result can be modified to change the attribute value. */ - client::JsonCppArray mutable_items() { - Json::Value* storage = MutableStorage("items"); - return client::JsonValueToMutableCppValueHelper >(storage); - } + client::JsonCppArray mutable_items(); /** * Determine if the 'kind' attribute was set. diff --git a/service_apis/youtube/google/youtube_api/video_list_response.cc b/service_apis/youtube/google/youtube_api/video_list_response.cc index 014b68b..6cc7124 100644 --- a/service_apis/youtube/google/youtube_api/video_list_response.cc +++ b/service_apis/youtube/google/youtube_api/video_list_response.cc @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. diff --git a/service_apis/youtube/google/youtube_api/video_list_response.h b/service_apis/youtube/google/youtube_api/video_list_response.h index 1df0be1..fd8d3ec 100644 --- a/service_apis/youtube/google/youtube_api/video_list_response.h +++ b/service_apis/youtube/google/youtube_api/video_list_response.h @@ -12,10 +12,10 @@ // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 // ---------------------------------------------------------------------------- // NOTE: This file is generated from Google APIs Discovery Service. @@ -23,10 +23,10 @@ // YouTube Data API (youtube/v3) // Generated from: // Version: v3 -// Revision: 130 +// Revision: 139 // Generated by: -// Tool: google-apis-code-generator 1.5.0 -// C++: 0.1.2 +// Tool: google-apis-code-generator 1.5.1 +// C++: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_VIDEO_LIST_RESPONSE_H_ #define GOOGLE_YOUTUBE_API_VIDEO_LIST_RESPONSE_H_ @@ -53,7 +53,6 @@ using namespace googleapis; */ class VideoListResponse : public client::JsonCppData { public: - /** * Creates a new default instance. * @@ -183,10 +182,7 @@ class VideoListResponse : public client::JsonCppData { /** * Get a reference to the value of the 'items' attribute. */ - const client::JsonCppArrayYouTube Data API * API Versionv3 - * API Rev130 + * API Rev139 * API Docs * * https://developers.google.com/youtube/v3 * Discovery Nameyoutube - * Generated At2015-03-12 20:35:33 UTC + * Generated At2015-06-02 17:00:10 UTC * C++ Generatorgoogle-apis-code-generator * Generator Version - * 1.5.0 / c++=0.1.2 - * Generator Build2015-01-14 17:53:03 UTC + * 1.5.1 / c++=0.1.3 + * Generator Build2015-03-26 20:30:19 UTC * * * \section ForMoreInfo For More Information @@ -268,13 +275,7 @@ class YouTubeServiceBaseRequest _have_oauth_token_ = false; client::ClearCppValueHelper(&oauth_token_); } - /** - * @deprecated - * @see clear_oauth_token - */ - void clear_oauthToken() { - clear_oauth_token(); - } + /** * Gets the optional 'oauth_token' attribute. @@ -314,13 +315,7 @@ class YouTubeServiceBaseRequest _have_pretty_print_ = false; client::ClearCppValueHelper(&pretty_print_); } - /** - * @deprecated - * @see clear_pretty_print - */ - void clear_prettyPrint() { - clear_pretty_print(); - } + /** * Gets the optional 'prettyPrint' attribute. @@ -346,13 +341,7 @@ class YouTubeServiceBaseRequest _have_quota_user_ = false; client::ClearCppValueHelper("a_user_); } - /** - * @deprecated - * @see clear_quota_user - */ - void clear_quotaUser() { - clear_quota_user(); - } + /** * Gets the optional 'quotaUser' attribute. @@ -394,13 +383,7 @@ class YouTubeServiceBaseRequest _have_user_ip_ = false; client::ClearCppValueHelper(&user_ip_); } - /** - * @deprecated - * @see clear_user_ip - */ - void clear_userIp() { - clear_user_ip(); - } + /** * Gets the optional 'userIp' attribute. @@ -453,6 +436,15 @@ class YouTubeServiceBaseRequest */ virtual util::Status AppendOptionalQueryParameters(string* target); + + protected: + /** + * Prepares the method's HTTP request to send body content as JSON. + * + * Only to be used for method constructors. + */ + void AddJsonContentToRequest(const client::JsonCppData *content); + private: string alt_; string fields_; @@ -489,8 +481,6 @@ class YouTubeServiceBaseRequest */ class ActivitiesResource_InsertMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -503,16 +493,13 @@ class ActivitiesResource_InsertMethod : public YouTubeServiceBaseRequest { * * The part names that you can include in the parameter value are snippet and * contentDetails. - * * @param[in] _content_ The data object to insert. - * */ ActivitiesResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Activity& _content_ - ); + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Activity& _content_); /** * Standard destructor. @@ -578,8 +565,6 @@ class ActivitiesResource_InsertMethod : public YouTubeServiceBaseRequest { */ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -597,12 +582,11 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { * identify the type of activity, a display title for the activity, and so * forth. If you set part=snippet, the API response will also contain all of * those nested properties. - * */ ActivitiesResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. @@ -617,13 +601,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_region_code_ = false; client::ClearCppValueHelper(®ion_code_); } - /** - * @deprecated - * @see clear_region_code - */ - void clear_regionCode() { - clear_region_code(); - } + /** * Gets the optional 'regionCode' attribute. @@ -668,13 +646,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_published_before_ = false; client::ClearCppValueHelper(&published_before_); } - /** - * @deprecated - * @see clear_published_before - */ - void clear_publishedBefore() { - clear_published_before(); - } + /** * Gets the optional 'publishedBefore' attribute. @@ -705,13 +677,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_channel_id_ = false; client::ClearCppValueHelper(&channel_id_); } - /** - * @deprecated - * @see clear_channel_id - */ - void clear_channelId() { - clear_channel_id(); - } + /** * Gets the optional 'channelId' attribute. @@ -779,13 +745,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -812,13 +772,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -890,13 +844,7 @@ class ActivitiesResource_ListMethod : public YouTubeServiceBaseRequest { _have_published_after_ = false; client::ClearCppValueHelper(&published_after_); } - /** - * @deprecated - * @see clear_published_after - */ - void clear_publishedAfter() { - clear_published_after(); - } + /** * Gets the optional 'publishedAfter' attribute. @@ -986,7 +934,7 @@ typedef client::ServiceRequestPager< /** - * Implements the insert method. + * Implements the delete method. * * @ingroup ServiceMethod * @@ -995,52 +943,30 @@ typedef client::ServiceRequestPager< * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.upload + * https://www.googleapis.com/auth/youtubepartner */ -class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { +class CaptionsResource_DeleteMethod : public YouTubeServiceBaseRequest { public: - - /** - * The standard constructor takes all the required method parameters. - * - * @deprecated in favor constructor that includes the media upload parameters. - * - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] _content_ The data object to insert. - */ - ChannelBannersResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_); - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] _metadata_ The metadata object to insert. If this is NULL then - * do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore _media_content_type_. + * @param[in] id The id parameter identifies the caption track that is being + * deleted. The value is a caption track ID as identified by the id property + * in a caption resource. */ - ChannelBannersResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const ChannelBannerResource* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + CaptionsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~ChannelBannersResource_InsertMethod(); + virtual ~CaptionsResource_DeleteMethod(); /** @@ -1051,13 +977,7 @@ class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -1091,7 +1011,7 @@ class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { * many different YouTube channels. It allows content owners to authenticate * once and get access to all their video and channel data, without having * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the + * actual CMS account that the user authenticates with must be linked to the * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { @@ -1099,6 +1019,77 @@ class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } + + + /** + * Clears the 'onBehalfOf' attribute so it is no longer set. + */ + void clear_on_behalf_of() { + _have_on_behalf_of_ = false; + client::ClearCppValueHelper(&on_behalf_of_); + } + + + /** + * Gets the optional 'onBehalfOf' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of() const { return on_behalf_of_; } + + /** + * Gets a modifiable pointer to the optional onBehalfOf' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOf() { + _have_on_behalf_of_ = true; + return &on_behalf_of_; + } + + + /** + * Sets the 'onBehalfOf' attribute. + * + * @param[in] value ID of the Google+ Page for the channel that the request + * is be on behalf of. + */ + void set_on_behalf_of(const string& value) { + _have_on_behalf_of_ = true; + on_behalf_of_ = value; + } + + + + /** + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. + */ + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); + } + + + /** + * Gets the optional 'debugProjectIdOverride' attribute. + * + * If the value is not set then the default value will be returned. + */ + int64 get_debug_project_id_override() const { return debug_project_id_override_; } + + /** + * Sets the 'debugProjectIdOverride' attribute. + * + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. + */ + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; + } + /** * Appends variable value to the target string. * @@ -1121,63 +1112,19 @@ class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - ChannelBannerResource* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); - - /** - * Returns MediaUploader for uploading the content. - */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } - - /** - * Returns the specification for media upload using the simple protocol. - */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; - /** - * Returns the specification for media upload using the resumable protocol. - */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; - private: + string id_; string on_behalf_of_content_owner_; + string on_behalf_of_; + int64 debug_project_id_override_; bool _have_on_behalf_of_content_owner_ : 1; - std::unique_ptr _uploader_; - - DISALLOW_COPY_AND_ASSIGN(ChannelBannersResource_InsertMethod); + bool _have_on_behalf_of_ : 1; + bool _have_debug_project_id_override_ : 1; + DISALLOW_COPY_AND_ASSIGN(CaptionsResource_DeleteMethod); }; - - /** - * Implements the delete method. + * Implements the download method. * * @ingroup ServiceMethod * @@ -1186,34 +1133,30 @@ class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtubepartner */ -class ChannelSectionsResource_DeleteMethod : public YouTubeServiceBaseRequest { +class CaptionsResource_DownloadMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube channelSection ID for - * the resource that is being deleted. In a channelSection resource, the id - * property specifies the YouTube channelSection ID. - * + * @param[in] id The id parameter identifies the caption track that is being + * retrieved. The value is a caption track ID as identified by the id property + * in a caption resource. */ - ChannelSectionsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + CaptionsResource_DownloadMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~ChannelSectionsResource_DeleteMethod(); + virtual ~CaptionsResource_DownloadMethod(); /** @@ -1224,13 +1167,7 @@ class ChannelSectionsResource_DeleteMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -1264,7 +1201,7 @@ class ChannelSectionsResource_DeleteMethod : public YouTubeServiceBaseRequest { * many different YouTube channels. It allows content owners to authenticate * once and get access to all their video and channel data, without having * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the + * actual CMS account that the user authenticates with must be linked to the * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { @@ -1272,201 +1209,157 @@ class ChannelSectionsResource_DeleteMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); - private: - string id_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_DeleteMethod); -}; + /** + * Clears the 'onBehalfOf' attribute so it is no longer set. + */ + void clear_on_behalf_of() { + _have_on_behalf_of_ = false; + client::ClearCppValueHelper(&on_behalf_of_); + } -/** - * Implements the insert method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class ChannelSectionsResource_InsertMethod : public YouTubeServiceBaseRequest { - public: + /** + * Gets the optional 'onBehalfOf' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of() const { return on_behalf_of_; } - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet and - * contentDetails. - * - * @param[in] _content_ The data object to insert. - * - */ - ChannelSectionsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const ChannelSection& _content_ - ); - - /** - * Standard destructor. - */ - virtual ~ChannelSectionsResource_InsertMethod(); + /** + * Gets a modifiable pointer to the optional onBehalfOf' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOf() { + _have_on_behalf_of_ = true; + return &on_behalf_of_; + } /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. + * Sets the 'onBehalfOf' attribute. + * + * @param[in] value ID of the Google+ Page for the channel that the request + * is be on behalf of. */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + void set_on_behalf_of(const string& value) { + _have_on_behalf_of_ = true; + on_behalf_of_ = value; } + + + /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'debugProjectIdOverride' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + int64 get_debug_project_id_override() const { return debug_project_id_override_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Sets the 'debugProjectIdOverride' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; + } + + /** + * Clears the 'tfmt' attribute so it is no longer set. + */ + void clear_tfmt() { + _have_tfmt_ = false; + client::ClearCppValueHelper(&tfmt_); } /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. + * Gets the optional 'tfmt' attribute. * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. + * If the value is not set then the default value will be returned. + */ + const string& get_tfmt() const { return tfmt_; } + + /** + * Gets a modifiable pointer to the optional tfmt' attribute. * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. + * @return The value can be set by dereferencing the pointer. */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; + string* mutable_tfmt() { + _have_tfmt_ = true; + return &tfmt_; } - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Sets the 'tfmt' attribute. + * + * @param[in] value The tfmt parameter specifies that the caption track + * should be returned in a specific format. If the parameter is not included + * in the request, the track is returned in its original format. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); + void set_tfmt(const string& value) { + _have_tfmt_ = true; + tfmt_ = value; } + + + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'tlang' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_tlang() { + _have_tlang_ = false; + client::ClearCppValueHelper(&tlang_); } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Gets the optional 'tlang' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_tlang() const { return tlang_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets a modifiable pointer to the optional tlang' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_tlang() { + _have_tlang_ = true; + return &tlang_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Sets the 'tlang' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The tlang parameter specifies that the API response + * should return a translation of the specified caption track. The parameter + * value is an ISO 639-1 two-letter language code that identifies the + * desired caption language. The translation is generated by using machine + * translation, such as Google Translate. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_tlang(const string& value) { + _have_tlang_ = true; + tlang_ = value; } /** @@ -1492,31 +1385,40 @@ class ChannelSectionsResource_InsertMethod : public YouTubeServiceBaseRequest { /** - * Executes the method and parses the response into a data object on success. + * Determine if the request should use Media Download for the response. * - * @param[out] data Loads from the response payload JSON data on success. + * @return true for media download, false otherwise. + */ + bool get_use_media_download() const { + return YouTubeServiceBaseRequest::get_use_media_download(); + } + + /** + * Sets whether Media Download should be used for the response data. * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. + * @param[in] use true to use media download, false otherwise. */ - util::Status ExecuteAndParseResponse( - ChannelSection* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + void set_use_media_download(bool use) { + YouTubeServiceBaseRequest::set_use_media_download(use); } private: - string part_; - string on_behalf_of_content_owner_channel_; + string id_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_InsertMethod); + string on_behalf_of_; + int64 debug_project_id_override_; + string tfmt_; + string tlang_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_on_behalf_of_ : 1; + bool _have_debug_project_id_override_ : 1; + bool _have_tfmt_ : 1; + bool _have_tlang_ : 1; + DISALLOW_COPY_AND_ASSIGN(CaptionsResource_DownloadMethod); }; /** - * Implements the list method. + * Implements the insert method. * * @ingroup ServiceMethod * @@ -1525,216 +1427,210 @@ class ChannelSectionsResource_InsertMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class ChannelSectionsResource_ListMethod : public YouTubeServiceBaseRequest { +class CaptionsResource_InsertMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. + * + * @deprecated in favor constructor that includes the media upload parameters. + * * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more channelSection resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * channelSection resource, the snippet property contains other properties, - * such as a display title for the channelSection. If you set part=snippet, - * the API response will also contain all of those nested properties. + * @param[in] part The part parameter specifies the caption resource parts + * that the API response will include. Set the parameter value to snippet. * + * @param[in] _content_ The data object to insert. */ - ChannelSectionsResource_ListMethod( + CaptionsResource_InsertMethod( const YouTubeService* _service_, client::AuthorizationCredential* _credential_, const StringPiece& part); + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies the caption resource parts + * that the API response will include. Set the parameter value to snippet. + * @param[in] _metadata_ The metadata object to insert. If this + * is NULL then do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + CaptionsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Caption* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); /** * Standard destructor. */ - virtual ~ChannelSectionsResource_ListMethod(); + virtual ~CaptionsResource_InsertMethod(); /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'sync' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_sync() { + _have_sync_ = false; + client::ClearCppValueHelper(&sync_); } - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets the optional 'sync' attribute. * - * @return The value can be set by dereferencing the pointer. + * If the value is not set then the default value will be returned. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } - + bool get_sync() const { return sync_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Sets the 'sync' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * @param[in] value The sync parameter indicates whether YouTube should + * automatically synchronize the caption file with the audio track of the + * video. If you set the value to true, YouTube will disregard any time + * codes that are in the uploaded caption file and generate new time codes + * for the captions. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * You should set the sync parameter to true if you are uploading a + * transcript, which has no time codes, or if you suspect the time codes in + * your file are incorrect and want YouTube to try to fix them. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_sync(bool value) { + _have_sync_ = true; + sync_ = value; } - - /** - * Clears the 'channelId' attribute so it is no longer set. - */ - void clear_channel_id() { - _have_channel_id_ = false; - client::ClearCppValueHelper(&channel_id_); - } - /** - * @deprecated - * @see clear_channel_id + * Clears the 'onBehalfOf' attribute so it is no longer set. */ - void clear_channelId() { - clear_channel_id(); + void clear_on_behalf_of() { + _have_on_behalf_of_ = false; + client::ClearCppValueHelper(&on_behalf_of_); } + /** - * Gets the optional 'channelId' attribute. + * Gets the optional 'onBehalfOf' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_channel_id() const { return channel_id_; } + const string& get_on_behalf_of() const { return on_behalf_of_; } /** - * Gets a modifiable pointer to the optional channelId' + * Gets a modifiable pointer to the optional onBehalfOf' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_channelId() { - _have_channel_id_ = true; - return &channel_id_; + string* mutable_onBehalfOf() { + _have_on_behalf_of_ = true; + return &on_behalf_of_; } /** - * Sets the 'channelId' attribute. + * Sets the 'onBehalfOf' attribute. * - * @param[in] value The channelId parameter specifies a YouTube channel ID. - * The API will only return that channel's channelSections. + * @param[in] value ID of the Google+ Page for the channel that the request + * is be on behalf of. */ - void set_channel_id(const string& value) { - _have_channel_id_ = true; - channel_id_ = value; + void set_on_behalf_of(const string& value) { + _have_on_behalf_of_ = true; + on_behalf_of_ = value; } /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'debugProjectIdOverride' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + int64 get_debug_project_id_override() const { return debug_project_id_override_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Sets the 'debugProjectIdOverride' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; } - /** - * Sets the 'id' attribute. - * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube channelSection ID(s) for the resource(s) that are being - * retrieved. In a channelSection resource, the id property specifies the - * YouTube channelSection ID. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * Clears the 'mine' attribute so it is no longer set. + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. */ - void clear_mine() { - _have_mine_ = false; - client::ClearCppValueHelper(&mine_); - } - + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets the optional 'mine' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * - * If the value is not set then the default value will be returned. + * @return The value can be set by dereferencing the pointer. */ - bool get_mine() const { return mine_; } + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + /** - * Sets the 'mine' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value Set this parameter's value to true to retrieve a feed of - * the authenticated user's channelSections. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * actual CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_mine(bool value) { - _have_mine_ = true; - mine_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** @@ -1770,25 +1666,39 @@ class ChannelSectionsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - ChannelSectionListResponse* data) { + Caption* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } + + /** + * Returns MediaUploader for uploading the content. + */ + + /** + * Returns the specification for media upload using the simple protocol. + */ + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; + /** + * Returns the specification for media upload using the resumable protocol. + */ + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; + private: string part_; + bool sync_; + string on_behalf_of_; + int64 debug_project_id_override_; string on_behalf_of_content_owner_; - string channel_id_; - string id_; - bool mine_; + bool _have_sync_ : 1; + bool _have_on_behalf_of_ : 1; + bool _have_debug_project_id_override_ : 1; bool _have_on_behalf_of_content_owner_ : 1; - bool _have_channel_id_ : 1; - bool _have_id_ : 1; - bool _have_mine_ : 1; - DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_ListMethod); + DISALLOW_COPY_AND_ASSIGN(CaptionsResource_InsertMethod); }; /** - * Implements the update method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -1797,41 +1707,33 @@ class ChannelSectionsResource_ListMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtubepartner */ -class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class CaptionsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet and - * contentDetails. - * - * @param[in] _content_ The data object to update. - * + * @param[in] part The part parameter specifies a comma-separated list of one + * or more caption resource parts that the API response will include. The part + * names that you can include in the parameter value are id and snippet. + * @param[in] video_id The videoId parameter specifies the YouTube video ID of + * the video for which the API should return caption tracks. */ - ChannelSectionsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const ChannelSection& _content_ - ); + CaptionsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const StringPiece& video_id); /** * Standard destructor. */ - virtual ~ChannelSectionsResource_UpdateMethod(); + virtual ~CaptionsResource_ListMethod(); /** @@ -1842,13 +1744,7 @@ class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -1882,7 +1778,7 @@ class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { * many different YouTube channels. It allows content owners to authenticate * once and get access to all their video and channel data, without having * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the + * actual CMS account that the user authenticates with must be linked to the * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { @@ -1890,6 +1786,116 @@ class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } + + + /** + * Clears the 'onBehalfOf' attribute so it is no longer set. + */ + void clear_on_behalf_of() { + _have_on_behalf_of_ = false; + client::ClearCppValueHelper(&on_behalf_of_); + } + + + /** + * Gets the optional 'onBehalfOf' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of() const { return on_behalf_of_; } + + /** + * Gets a modifiable pointer to the optional onBehalfOf' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOf() { + _have_on_behalf_of_ = true; + return &on_behalf_of_; + } + + + /** + * Sets the 'onBehalfOf' attribute. + * + * @param[in] value ID of the Google+ Page for the channel that the request + * is on behalf of. + */ + void set_on_behalf_of(const string& value) { + _have_on_behalf_of_ = true; + on_behalf_of_ = value; + } + + + + /** + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. + */ + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); + } + + + /** + * Gets the optional 'debugProjectIdOverride' attribute. + * + * If the value is not set then the default value will be returned. + */ + int64 get_debug_project_id_override() const { return debug_project_id_override_; } + + /** + * Sets the 'debugProjectIdOverride' attribute. + * + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. + */ + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; + } + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of IDs + * that identify the caption resources that should be retrieved. Each ID + * must identify a caption track associated with the specified video. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + /** * Appends variable value to the target string. * @@ -1923,21 +1929,26 @@ class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - ChannelSection* data) { + CaptionListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; + string video_id_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_UpdateMethod); + string on_behalf_of_; + int64 debug_project_id_override_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_on_behalf_of_ : 1; + bool _have_debug_project_id_override_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(CaptionsResource_ListMethod); }; - - /** - * Implements the list method. + * Implements the update method. * * @ingroup ServiceMethod * @@ -1946,411 +1957,387 @@ class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner - * https://www.googleapis.com/auth/youtubepartner-channel-audit */ -class ChannelsResource_ListMethod : public YouTubeServiceBaseRequest { +class CaptionsResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. + * + * @deprecated in favor constructor that includes the media upload parameters. + * * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more channel resource properties that the API response will include. The - * part names that you can include in the parameter value are id, snippet, - * contentDetails, statistics, topicDetails, and invideoPromotion. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * channel resource, the contentDetails property contains other properties, - * such as the uploads properties. As such, if you set part=contentDetails, - * the API response will also contain all of those nested properties. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. Set the property value + * to snippet if you are updating the track's draft status. Otherwise, set the + * property value to id. * + * @param[in] _content_ The data object to update. */ - ChannelsResource_ListMethod( + CaptionsResource_UpdateMethod( const YouTubeService* _service_, client::AuthorizationCredential* _credential_, const StringPiece& part); + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. Set the property value + * to snippet if you are updating the track's draft status. Otherwise, set the + * property value to id. + * @param[in] _metadata_ The metadata object to update. If this + * is NULL then do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to update. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + CaptionsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Caption* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); /** * Standard destructor. */ - virtual ~ChannelsResource_ListMethod(); + virtual ~CaptionsResource_UpdateMethod(); /** - * Clears the 'managedByMe' attribute so it is no longer set. - */ - void clear_managed_by_me() { - _have_managed_by_me_ = false; - client::ClearCppValueHelper(&managed_by_me_); - } - /** - * @deprecated - * @see clear_managed_by_me + * Clears the 'sync' attribute so it is no longer set. */ - void clear_managedByMe() { - clear_managed_by_me(); + void clear_sync() { + _have_sync_ = false; + client::ClearCppValueHelper(&sync_); } + /** - * Gets the optional 'managedByMe' attribute. + * Gets the optional 'sync' attribute. * * If the value is not set then the default value will be returned. */ - bool get_managed_by_me() const { return managed_by_me_; } + bool get_sync() const { return sync_; } /** - * Sets the 'managedByMe' attribute. + * Sets the 'sync' attribute. * - * @param[in] value Set this parameter's value to true to instruct the API - * to only return channels managed by the content owner that the - * onBehalfOfContentOwner parameter specifies. The user must be - * authenticated as a CMS account linked to the specified content owner and - * onBehalfOfContentOwner must be provided. + * @param[in] value Note: The API server only processes the parameter value + * if the request contains an updated caption file. + * + * The sync parameter indicates whether YouTube should automatically + * synchronize the caption file with the audio track of the video. If you + * set the value to true, YouTube will automatically synchronize the caption + * track with the audio track. */ - void set_managed_by_me(bool value) { - _have_managed_by_me_ = true; - managed_by_me_ = value; + void set_sync(bool value) { + _have_sync_ = true; + sync_ = value; } /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'onBehalfOf' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_on_behalf_of() { + _have_on_behalf_of_ = false; + client::ClearCppValueHelper(&on_behalf_of_); } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Gets the optional 'onBehalfOf' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_on_behalf_of() const { return on_behalf_of_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets a modifiable pointer to the optional onBehalfOf' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_onBehalfOf() { + _have_on_behalf_of_ = true; + return &on_behalf_of_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Sets the 'onBehalfOf' attribute. * - * @param[in] value The onBehalfOfContentOwner parameter indicates that the - * authenticated user is acting on behalf of the content owner specified in - * the parameter value. This parameter is intended for YouTube content - * partners that own and manage many different YouTube channels. It allows - * content owners to authenticate once and get access to all their video and - * channel data, without having to provide authentication credentials for - * each individual channel. The actual CMS account that the user - * authenticates with needs to be linked to the specified YouTube content - * owner. + * @param[in] value ID of the Google+ Page for the channel that the request + * is be on behalf of. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_on_behalf_of(const string& value) { + _have_on_behalf_of_ = true; + on_behalf_of_ = value; } /** - * Clears the 'forUsername' attribute so it is no longer set. - */ - void clear_for_username() { - _have_for_username_ = false; - client::ClearCppValueHelper(&for_username_); - } - /** - * @deprecated - * @see clear_for_username + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. */ - void clear_forUsername() { - clear_for_username(); + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); } - /** - * Gets the optional 'forUsername' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_for_username() const { return for_username_; } /** - * Gets a modifiable pointer to the optional forUsername' - * attribute. + * Gets the optional 'debugProjectIdOverride' attribute. * - * @return The value can be set by dereferencing the pointer. + * If the value is not set then the default value will be returned. */ - string* mutable_forUsername() { - _have_for_username_ = true; - return &for_username_; - } - + int64 get_debug_project_id_override() const { return debug_project_id_override_; } /** - * Sets the 'forUsername' attribute. + * Sets the 'debugProjectIdOverride' attribute. * - * @param[in] value The forUsername parameter specifies a YouTube username, - * thereby requesting the channel associated with that username. + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. */ - void set_for_username(const string& value) { - _have_for_username_ = true; - for_username_ = value; + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; } - - /** - * Clears the 'mine' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_mine() { - _have_mine_ = false; - client::ClearCppValueHelper(&mine_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } /** - * Gets the optional 'mine' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - bool get_mine() const { return mine_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Sets the 'mine' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * - * @param[in] value Set this parameter's value to true to instruct the API - * to only return channels owned by the authenticated user. + * @return The value can be set by dereferencing the pointer. */ - void set_mine(bool value) { - _have_mine_ = true; - mine_ = value; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } - /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } /** - * Gets the optional 'maxResults' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * If the value is not set then the default value will be returned. - */ - uint32 get_max_results() const { return max_results_; } - - /** - * Sets the 'maxResults' attribute. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * actual CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + Caption* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + + /** + * Returns MediaUploader for uploading the content. + */ + + /** + * Returns the specification for media upload using the simple protocol. + */ + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; + /** + * Returns the specification for media upload using the resumable protocol. + */ + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; + + private: + string part_; + bool sync_; + string on_behalf_of_; + int64 debug_project_id_override_; + string on_behalf_of_content_owner_; + bool _have_sync_ : 1; + bool _have_on_behalf_of_ : 1; + bool _have_debug_project_id_override_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(CaptionsResource_UpdateMethod); +}; + + + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.upload + */ +class ChannelBannersResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * + * @deprecated in favor constructor that includes the media upload parameters. + * + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] _content_ The data object to insert. + */ + ChannelBannersResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_); + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] _metadata_ The metadata object to insert. If this + * is NULL then do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + ChannelBannersResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const ChannelBannerResource* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); + + /** + * Standard destructor. + */ + virtual ~ChannelBannersResource_InsertMethod(); + + /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'id' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube channel ID(s) for the resource(s) that are being retrieved. In a - * channel resource, the id property specifies the channel's YouTube channel - * ID. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; - } - - - - /** - * Clears the 'pageToken' attribute so it is no longer set. - */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } - - /** - * Gets the optional 'pageToken' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_page_token() const { return page_token_; } - - /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; - } - - - /** - * Sets the 'pageToken' attribute. - * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. - */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; - } - - - - /** - * Clears the 'mySubscribers' attribute so it is no longer set. - */ - void clear_my_subscribers() { - _have_my_subscribers_ = false; - client::ClearCppValueHelper(&my_subscribers_); - } - /** - * @deprecated - * @see clear_my_subscribers - */ - void clear_mySubscribers() { - clear_my_subscribers(); - } - - /** - * Gets the optional 'mySubscribers' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_my_subscribers() const { return my_subscribers_; } - - /** - * Sets the 'mySubscribers' attribute. - * - * @param[in] value Set this parameter's value to true to retrieve a list of - * channels that subscribed to the authenticated user's channel. - */ - void set_my_subscribers(bool value) { - _have_my_subscribers_ = true; - my_subscribers_ = value; - } - - /** - * Clears the 'categoryId' attribute so it is no longer set. - */ - void clear_category_id() { - _have_category_id_ = false; - client::ClearCppValueHelper(&category_id_); - } - /** - * @deprecated - * @see clear_category_id - */ - void clear_categoryId() { - clear_category_id(); - } - - /** - * Gets the optional 'categoryId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_category_id() const { return category_id_; } - - /** - * Gets a modifiable pointer to the optional categoryId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_categoryId() { - _have_category_id_ = true; - return &category_id_; - } - - - /** - * Sets the 'categoryId' attribute. - * - * @param[in] value The categoryId parameter specifies a YouTube guide - * category, thereby requesting YouTube channels associated with that - * category. - */ - void set_category_id(const string& value) { - _have_category_id_ = true; - category_id_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** @@ -2386,40 +2373,34 @@ class ChannelsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - ChannelListResponse* data) { + ChannelBannerResource* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } + + /** + * Returns MediaUploader for uploading the content. + */ + + /** + * Returns the specification for media upload using the simple protocol. + */ + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; + /** + * Returns the specification for media upload using the resumable protocol. + */ + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; + private: - string part_; - bool managed_by_me_; string on_behalf_of_content_owner_; - string for_username_; - bool mine_; - uint32 max_results_; - string id_; - string page_token_; - bool my_subscribers_; - string category_id_; - bool _have_managed_by_me_ : 1; bool _have_on_behalf_of_content_owner_ : 1; - bool _have_for_username_ : 1; - bool _have_mine_ : 1; - bool _have_max_results_ : 1; - bool _have_id_ : 1; - bool _have_page_token_ : 1; - bool _have_my_subscribers_ : 1; - bool _have_category_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(ChannelsResource_ListMethod); + DISALLOW_COPY_AND_ASSIGN(ChannelBannersResource_InsertMethod); }; -typedef client::ServiceRequestPager< - ChannelsResource_ListMethod, - ChannelListResponse> - ChannelsResource_ListMethodPager; + /** - * Implements the update method. + * Implements the delete method. * * @ingroup ServiceMethod * @@ -2432,41 +2413,27 @@ typedef client::ServiceRequestPager< * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtubepartner */ -class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class ChannelSectionsResource_DeleteMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are id and - * invideoPromotion. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. - * - * @param[in] _content_ The data object to update. - * + * @param[in] id The id parameter specifies the YouTube channelSection ID for + * the resource that is being deleted. In a channelSection resource, the id + * property specifies the YouTube channelSection ID. */ - ChannelsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Channel& _content_ - ); + ChannelSectionsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~ChannelsResource_UpdateMethod(); + virtual ~ChannelSectionsResource_DeleteMethod(); /** @@ -2477,13 +2444,7 @@ class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -2507,15 +2468,18 @@ class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { /** * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The onBehalfOfContentOwner parameter indicates that the - * authenticated user is acting on behalf of the content owner specified in - * the parameter value. This parameter is intended for YouTube content - * partners that own and manage many different YouTube channels. It allows - * content owners to authenticate once and get access to all their video and - * channel data, without having to provide authentication credentials for - * each individual channel. The actual CMS account that the user - * authenticates with needs to be linked to the specified YouTube content - * owner. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { _have_on_behalf_of_content_owner_ = true; @@ -2544,32 +2508,15 @@ class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - Channel* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - private: - string part_; + string id_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(ChannelsResource_UpdateMethod); + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_DeleteMethod); }; - - /** - * Implements the list method. + * Implements the insert method. * * @ingroup ServiceMethod * @@ -2580,168 +2527,143 @@ class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class GuideCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { +class ChannelSectionsResource_InsertMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more guideCategory resource properties that the API response will - * include. The part names that you can include in the parameter value are id - * and snippet. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * guideCategory resource, the snippet property contains other properties, - * such as the category's title. If you set part=snippet, the API response - * will also contain all of those nested properties. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * + * The part names that you can include in the parameter value are snippet and + * contentDetails. + * @param[in] _content_ The data object to insert. */ - GuideCategoriesResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + ChannelSectionsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const ChannelSection& _content_); /** * Standard destructor. */ - virtual ~GuideCategoriesResource_ListMethod(); + virtual ~ChannelSectionsResource_InsertMethod(); /** - * Clears the 'regionCode' attribute so it is no longer set. - */ - void clear_region_code() { - _have_region_code_ = false; - client::ClearCppValueHelper(®ion_code_); - } - /** - * @deprecated - * @see clear_region_code + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_regionCode() { - clear_region_code(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'regionCode' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_region_code() const { return region_code_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional regionCode' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_regionCode() { - _have_region_code_ = true; - return ®ion_code_; - } - - - /** - * Sets the 'regionCode' attribute. - * - * @param[in] value The regionCode parameter instructs the API to return the - * list of guide categories available in the specified country. The - * parameter value is an ISO 3166-1 alpha-2 country code. - */ - void set_region_code(const string& value) { - _have_region_code_ = true; - region_code_ = value; - } - - - - /** - * Clears the 'id' attribute so it is no longer set. - */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Gets the optional 'id' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * If the value is not set then the default value will be returned. - */ - const string& get_id() const { return id_; } - - /** - * Gets a modifiable pointer to the optional id' attribute. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_id() { - _have_id_ = true; - return &id_; - } - - - /** - * Sets the 'id' attribute. + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube channel category ID(s) for the resource(s) that are being - * retrieved. In a guideCategory resource, the id property specifies the - * YouTube channel category ID. + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'hl' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_hl() { - _have_hl_ = false; - client::ClearCppValueHelper(&hl_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } /** - * Gets the optional 'hl' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_hl() const { return hl_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional hl' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_hl() { - _have_hl_ = true; - return &hl_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'hl' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The hl parameter specifies the language that will be - * used for text values in the API response. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_hl(const string& value) { - _have_hl_ = true; - hl_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** @@ -2777,23 +2699,19 @@ class GuideCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - GuideCategoryListResponse* data) { + ChannelSection* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string region_code_; - string id_; - string hl_; - bool _have_region_code_ : 1; - bool _have_id_ : 1; - bool _have_hl_ : 1; - DISALLOW_COPY_AND_ASSIGN(GuideCategoriesResource_ListMethod); + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_InsertMethod); }; - - /** * Implements the list method. * @@ -2809,10 +2727,8 @@ class GuideCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class I18nLanguagesResource_ListMethod : public YouTubeServiceBaseRequest { +class ChannelSectionsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -2820,147 +2736,146 @@ class I18nLanguagesResource_ListMethod : public YouTubeServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] part The part parameter specifies a comma-separated list of one - * or more i18nLanguage resource properties that the API response will - * include. The part names that you can include in the parameter value are id - * and snippet. + * or more channelSection resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, and contentDetails. * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * channelSection resource, the snippet property contains other properties, + * such as a display title for the channelSection. If you set part=snippet, + * the API response will also contain all of those nested properties. */ - I18nLanguagesResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + ChannelSectionsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~I18nLanguagesResource_ListMethod(); + virtual ~ChannelSectionsResource_ListMethod(); /** - * Clears the 'hl' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_hl() { - _have_hl_ = false; - client::ClearCppValueHelper(&hl_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } /** - * Gets the optional 'hl' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_hl() const { return hl_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional hl' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_hl() { - _have_hl_ = true; - return &hl_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'hl' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The hl parameter specifies the language that should be - * used for text values in the API response. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_hl(const string& value) { - _have_hl_ = true; - hl_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - I18nLanguageListResponse* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } + /** + * Clears the 'channelId' attribute so it is no longer set. + */ + void clear_channel_id() { + _have_channel_id_ = false; + client::ClearCppValueHelper(&channel_id_); + } - private: - string part_; - string hl_; - bool _have_hl_ : 1; - DISALLOW_COPY_AND_ASSIGN(I18nLanguagesResource_ListMethod); -}; + /** + * Gets the optional 'channelId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_channel_id() const { return channel_id_; } + + /** + * Gets a modifiable pointer to the optional channelId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_channelId() { + _have_channel_id_ = true; + return &channel_id_; + } -/** - * Implements the list method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly - * https://www.googleapis.com/auth/youtubepartner - */ -class I18nRegionsResource_ListMethod : public YouTubeServiceBaseRequest { - public: + /** + * Sets the 'channelId' attribute. + * + * @param[in] value The channelId parameter specifies a YouTube channel ID. + * The API will only return that channel's channelSections. + */ + void set_channel_id(const string& value) { + _have_channel_id_ = true; + channel_id_ = value; + } - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more i18nRegion resource properties that the API response will include. - * The part names that you can include in the parameter value are id and - * snippet. - * - */ - I18nRegionsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); - /** - * Standard destructor. - */ - virtual ~I18nRegionsResource_ListMethod(); + /** + * Clears the 'mine' attribute so it is no longer set. + */ + void clear_mine() { + _have_mine_ = false; + client::ClearCppValueHelper(&mine_); + } + + /** + * Gets the optional 'mine' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_mine() const { return mine_; } + + /** + * Sets the 'mine' attribute. + * + * @param[in] value Set this parameter's value to true to retrieve a feed of + * the authenticated user's channelSections. + */ + void set_mine(bool value) { + _have_mine_ = true; + mine_ = value; + } /** * Clears the 'hl' attribute so it is no longer set. @@ -2992,14 +2907,62 @@ class I18nRegionsResource_ListMethod : public YouTubeServiceBaseRequest { /** * Sets the 'hl' attribute. * - * @param[in] value The hl parameter specifies the language that should be - * used for text values in the API response. + * @param[in] value The hl parameter indicates that the snippet.localized + * property values in the returned channelSection resources should be in the + * specified language if localized values for that language are available. + * For example, if the API request specifies hl=de, the snippet.localized + * properties in the API response will contain German titles if German + * titles are available. Channel owners can provide localized channel + * section titles using either the channelSections.insert or + * channelSections.update method. */ void set_hl(const string& value) { _have_hl_ = true; hl_ = value; } + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube channelSection ID(s) for the resource(s) that are being + * retrieved. In a channelSection resource, the id property specifies the + * YouTube channelSection ID. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + /** * Appends variable value to the target string. * @@ -3033,21 +2996,27 @@ class I18nRegionsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - I18nRegionListResponse* data) { + ChannelSectionListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; + string on_behalf_of_content_owner_; + string channel_id_; + bool mine_; string hl_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_channel_id_ : 1; + bool _have_mine_ : 1; bool _have_hl_ : 1; - DISALLOW_COPY_AND_ASSIGN(I18nRegionsResource_ListMethod); + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_ListMethod); }; - - /** - * Implements the bind method. + * Implements the update method. * * @ingroup ServiceMethod * @@ -3058,143 +3027,70 @@ class I18nRegionsResource_ListMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner */ -class LiveBroadcastsResource_BindMethod : public YouTubeServiceBaseRequest { +class ChannelSectionsResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the unique ID of the broadcast - * that is being bound to a video stream. - * - * @param[in] part The part parameter specifies a comma-separated list of one - * or more liveBroadcast resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, contentDetails, and status. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * + * The part names that you can include in the parameter value are snippet and + * contentDetails. + * @param[in] _content_ The data object to update. */ - LiveBroadcastsResource_BindMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& part); + ChannelSectionsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const ChannelSection& _content_); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_BindMethod(); + virtual ~ChannelSectionsResource_UpdateMethod(); /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. + * Sets the 'onBehalfOfContentOwner' attribute. * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - - - - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } - - - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. * * The onBehalfOfContentOwner parameter indicates that the request's * authorization credentials identify a YouTube CMS user who is acting on @@ -3211,55 +3107,6 @@ class LiveBroadcastsResource_BindMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } - - - /** - * Clears the 'streamId' attribute so it is no longer set. - */ - void clear_stream_id() { - _have_stream_id_ = false; - client::ClearCppValueHelper(&stream_id_); - } - /** - * @deprecated - * @see clear_stream_id - */ - void clear_streamId() { - clear_stream_id(); - } - - /** - * Gets the optional 'streamId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_stream_id() const { return stream_id_; } - - /** - * Gets a modifiable pointer to the optional streamId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_streamId() { - _have_stream_id_ = true; - return &stream_id_; - } - - - /** - * Sets the 'streamId' attribute. - * - * @param[in] value The streamId parameter specifies the unique ID of the - * video stream that is being bound to a broadcast. If this parameter is - * omitted, the API will remove any existing binding between the broadcast - * and a video stream. - */ - void set_stream_id(const string& value) { - _have_stream_id_ = true; - stream_id_ = value; - } - /** * Appends variable value to the target string. * @@ -3293,24 +3140,21 @@ class LiveBroadcastsResource_BindMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveBroadcast* data) { + ChannelSection* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: - string id_; string part_; - string on_behalf_of_content_owner_channel_; string on_behalf_of_content_owner_; - string stream_id_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - bool _have_stream_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_BindMethod); + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource_UpdateMethod); }; + + /** - * Implements the control method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -3321,38 +3165,70 @@ class LiveBroadcastsResource_BindMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner + * https://www.googleapis.com/auth/youtubepartner-channel-audit */ -class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { +class ChannelsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube live broadcast ID that - * uniquely identifies the broadcast in which the slate is being updated. - * * @param[in] part The part parameter specifies a comma-separated list of one - * or more liveBroadcast resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, contentDetails, and status. + * or more channel resource properties that the API response will include. The + * part names that you can include in the parameter value are id, snippet, + * contentDetails, statistics, topicDetails, and invideoPromotion. * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * channel resource, the contentDetails property contains other properties, + * such as the uploads properties. As such, if you set part=contentDetails, + * the API response will also contain all of those nested properties. */ - LiveBroadcastsResource_ControlMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& part); + ChannelsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_ControlMethod(); + virtual ~ChannelsResource_ListMethod(); + /** + * Clears the 'managedByMe' attribute so it is no longer set. + */ + void clear_managed_by_me() { + _have_managed_by_me_ = false; + client::ClearCppValueHelper(&managed_by_me_); + } + + + /** + * Gets the optional 'managedByMe' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_managed_by_me() const { return managed_by_me_; } + + /** + * Sets the 'managedByMe' attribute. + * + * @param[in] value Set this parameter's value to true to instruct the API + * to only return channels managed by the content owner that the + * onBehalfOfContentOwner parameter specifies. The user must be + * authenticated as a CMS account linked to the specified content owner and + * onBehalfOfContentOwner must be provided. + */ + void set_managed_by_me(bool value) { + _have_managed_by_me_ = true; + managed_by_me_ = value; + } + /** * Clears the 'onBehalfOfContentOwner' attribute so it is no * longer set. @@ -3361,13 +3237,7 @@ class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -3391,18 +3261,15 @@ class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { /** * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The onBehalfOfContentOwner parameter indicates that the + * authenticated user is acting on behalf of the content owner specified in + * the parameter value. This parameter is intended for YouTube content + * partners that own and manage many different YouTube channels. It allows + * content owners to authenticate once and get access to all their video and + * channel data, without having to provide authentication credentials for + * each individual channel. The actual CMS account that the user + * authenticates with needs to be linked to the specified YouTube content + * owner. */ void set_on_behalf_of_content_owner(const string& value) { _have_on_behalf_of_content_owner_ = true; @@ -3412,174 +3279,291 @@ class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { /** - * Clears the 'displaySlate' attribute so it is no longer set. - */ - void clear_display_slate() { - _have_display_slate_ = false; - client::ClearCppValueHelper(&display_slate_); - } - /** - * @deprecated - * @see clear_display_slate + * Clears the 'forUsername' attribute so it is no longer set. */ - void clear_displaySlate() { - clear_display_slate(); + void clear_for_username() { + _have_for_username_ = false; + client::ClearCppValueHelper(&for_username_); } + /** - * Gets the optional 'displaySlate' attribute. + * Gets the optional 'forUsername' attribute. * * If the value is not set then the default value will be returned. */ - bool get_display_slate() const { return display_slate_; } + const string& get_for_username() const { return for_username_; } /** - * Sets the 'displaySlate' attribute. + * Gets a modifiable pointer to the optional forUsername' + * attribute. * - * @param[in] value The displaySlate parameter specifies whether the slate - * is being enabled or disabled. + * @return The value can be set by dereferencing the pointer. */ - void set_display_slate(bool value) { - _have_display_slate_ = true; - display_slate_ = value; + string* mutable_forUsername() { + _have_for_username_ = true; + return &for_username_; } + /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. + * Sets the 'forUsername' attribute. + * + * @param[in] value The forUsername parameter specifies a YouTube username, + * thereby requesting the channel associated with that username. */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + void set_for_username(const string& value) { + _have_for_username_ = true; + for_username_ = value; } + + + /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'mine' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_mine() { + _have_mine_ = false; + client::ClearCppValueHelper(&mine_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'mine' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + bool get_mine() const { return mine_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Sets the 'mine' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value Set this parameter's value to true to instruct the API + * to only return channels owned by the authenticated user. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + void set_mine(bool value) { + _have_mine_ = true; + mine_ = value; } - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } + + + /** + * Gets the optional 'maxResults' attribute. * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; } + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } /** - * Clears the 'offsetTimeMs' attribute so it is no longer set. + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. */ - void clear_offset_time_ms() { - _have_offset_time_ms_ = false; - client::ClearCppValueHelper(&offset_time_ms_); + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube channel ID(s) for the resource(s) that are being retrieved. In a + * channel resource, the id property specifies the channel's YouTube channel + * ID. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; } + + + /** - * @deprecated - * @see clear_offset_time_ms + * Clears the 'pageToken' attribute so it is no longer set. */ - void clear_offsetTimeMs() { - clear_offset_time_ms(); + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); } + /** - * Gets the optional 'offsetTimeMs' attribute. + * Gets the optional 'pageToken' attribute. * * If the value is not set then the default value will be returned. */ - uint64 get_offset_time_ms() const { return offset_time_ms_; } + const string& get_page_token() const { return page_token_; } /** - * Sets the 'offsetTimeMs' attribute. + * Gets a modifiable pointer to the optional pageToken' + * attribute. * - * @param[in] value The offsetTimeMs parameter specifies a positive time - * offset when the specified slate change will occur. The value is measured - * in milliseconds from the beginning of the broadcast's monitor stream, - * which is the time that the testing phase for the broadcast began. Even - * though it is specified in milliseconds, the value is actually an - * approximation, and YouTube completes the requested action as closely as - * possible to that time. + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; + } + + + /** + * Sets the 'pageToken' attribute. * - * If you do not specify a value for this parameter, then YouTube performs - * the action as soon as possible. See the Getting started guide for more - * details. + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. + */ + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; + } + + + + /** + * Clears the 'mySubscribers' attribute so it is no longer set. + */ + void clear_my_subscribers() { + _have_my_subscribers_ = false; + client::ClearCppValueHelper(&my_subscribers_); + } + + + /** + * Gets the optional 'mySubscribers' attribute. * - * Important: You should only specify a value for this parameter if your - * broadcast stream is delayed. + * If the value is not set then the default value will be returned. */ - void set_offset_time_ms(uint64 value) { - _have_offset_time_ms_ = true; - offset_time_ms_ = value; + bool get_my_subscribers() const { return my_subscribers_; } + + /** + * Sets the 'mySubscribers' attribute. + * + * @param[in] value Set this parameter's value to true to retrieve a list of + * channels that subscribed to the authenticated user's channel. + */ + void set_my_subscribers(bool value) { + _have_my_subscribers_ = true; + my_subscribers_ = value; } /** - * Clears the 'walltime' attribute so it is no longer set. + * Clears the 'hl' attribute so it is no longer set. */ - void clear_walltime() { - _have_walltime_ = false; - client::ClearCppValueHelper(&walltime_); + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); } /** - * Gets the optional 'walltime' attribute. + * Gets the optional 'hl' attribute. * * If the value is not set then the default value will be returned. */ - client::DateTime get_walltime() const { return walltime_; } + const string& get_hl() const { return hl_; } /** - * Sets the 'walltime' attribute. + * Gets a modifiable pointer to the optional hl' attribute. * - * @param[in] value The walltime parameter specifies the wall clock time at - * which the specified slate change will occur. The value is specified in - * ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format. + * @return The value can be set by dereferencing the pointer. */ - void set_walltime(client::DateTime value) { - _have_walltime_ = true; - walltime_ = value; + string* mutable_hl() { + _have_hl_ = true; + return &hl_; + } + + + /** + * Sets the 'hl' attribute. + * + * @param[in] value The hl parameter should be used for filter out the + * properties that are not in the given language. Used for the + * brandingSettings part. + */ + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; + } + + + + /** + * Clears the 'categoryId' attribute so it is no longer set. + */ + void clear_category_id() { + _have_category_id_ = false; + client::ClearCppValueHelper(&category_id_); + } + + + /** + * Gets the optional 'categoryId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_category_id() const { return category_id_; } + + /** + * Gets a modifiable pointer to the optional categoryId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_categoryId() { + _have_category_id_ = true; + return &category_id_; + } + + + /** + * Sets the 'categoryId' attribute. + * + * @param[in] value The categoryId parameter specifies a YouTube guide + * category, thereby requesting YouTube channels associated with that + * category. + */ + void set_category_id(const string& value) { + _have_category_id_ = true; + category_id_ = value; } /** @@ -3615,29 +3599,43 @@ class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveBroadcast* data) { + ChannelListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: - string id_; string part_; + bool managed_by_me_; string on_behalf_of_content_owner_; - bool display_slate_; - string on_behalf_of_content_owner_channel_; - uint64 offset_time_ms_; - client::DateTime walltime_; + string for_username_; + bool mine_; + uint32 max_results_; + string id_; + string page_token_; + bool my_subscribers_; + string hl_; + string category_id_; + bool _have_managed_by_me_ : 1; bool _have_on_behalf_of_content_owner_ : 1; - bool _have_display_slate_ : 1; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_offset_time_ms_ : 1; - bool _have_walltime_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_ControlMethod); -}; - -/** - * Implements the delete method. - * + bool _have_for_username_ : 1; + bool _have_mine_ : 1; + bool _have_max_results_ : 1; + bool _have_id_ : 1; + bool _have_page_token_ : 1; + bool _have_my_subscribers_ : 1; + bool _have_hl_ : 1; + bool _have_category_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(ChannelsResource_ListMethod); +}; + +typedef client::ServiceRequestPager< + ChannelsResource_ListMethod, + ChannelListResponse> + ChannelsResource_ListMethodPager; + +/** + * Implements the update method. + * * @ingroup ServiceMethod * * This class uses the Command Pattern. Construct an instance with the required @@ -3647,95 +3645,38 @@ class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner */ -class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { +class ChannelsResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube live broadcast ID for - * the resource that is being deleted. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * invideoPromotion. * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. + * @param[in] _content_ The data object to update. */ - LiveBroadcastsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + ChannelsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Channel& _content_); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_DeleteMethod(); - - - /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } - - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - + virtual ~ChannelsResource_UpdateMethod(); /** @@ -3746,13 +3687,7 @@ class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -3776,18 +3711,15 @@ class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { /** * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The onBehalfOfContentOwner parameter indicates that the + * authenticated user is acting on behalf of the content owner specified in + * the parameter value. This parameter is intended for YouTube content + * partners that own and manage many different YouTube channels. It allows + * content owners to authenticate once and get access to all their video and + * channel data, without having to provide authentication credentials for + * each individual channel. The actual CMS account that the user + * authenticates with needs to be linked to the specified YouTube content + * owner. */ void set_on_behalf_of_content_owner(const string& value) { _have_on_behalf_of_content_owner_ = true; @@ -3816,15 +3748,30 @@ class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { virtual util::Status AppendOptionalQueryParameters(string* target); + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + Channel* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + private: - string id_; - string on_behalf_of_content_owner_channel_; + string part_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_DeleteMethod); + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(ChannelsResource_UpdateMethod); }; + + /** * Implements the insert method. * @@ -3835,13 +3782,10 @@ class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl */ -class LiveBroadcastsResource_InsertMethod : public YouTubeServiceBaseRequest { +class CommentThreadsResource_InsertMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -3852,190 +3796,92 @@ class LiveBroadcastsResource_InsertMethod : public YouTubeServiceBaseRequest { * It identifies the properties that the write operation will set as well as * the properties that the API response will include. * - * The part properties that you can include in the parameter value are id, - * snippet, contentDetails, and status. - * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be set. * @param[in] _content_ The data object to insert. - * */ - LiveBroadcastsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveBroadcast& _content_ - ); + CommentThreadsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const CommentThread& _content_); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_InsertMethod(); + virtual ~CommentThreadsResource_InsertMethod(); /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'shareOnGooglePlus' attribute so it is no longer + * set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_share_on_google_plus() { + _have_share_on_google_plus_ = false; + client::ClearCppValueHelper(&share_on_google_plus_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'shareOnGooglePlus' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + bool get_share_on_google_plus() const { return share_on_google_plus_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Sets the 'shareOnGooglePlus' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The shareOnGooglePlus determines whether this thread + * should also be posted on Google+. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + void set_share_on_google_plus(bool value) { + _have_share_on_google_plus_ = true; + share_on_google_plus_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } - - - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. - */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } - - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); - - - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - LiveBroadcast* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + CommentThread* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } private: string part_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_InsertMethod); + bool share_on_google_plus_; + bool _have_share_on_google_plus_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(CommentThreadsResource_InsertMethod); }; /** @@ -4048,236 +3894,201 @@ class LiveBroadcastsResource_InsertMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly */ -class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { +class CommentThreadsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more liveBroadcast resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, contentDetails, and status. - * + * @param[in] part The part parameter specifies the commentThread resource + * parts that the API response will include. Supported values are id, snippet + * and replies. */ - LiveBroadcastsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + CommentThreadsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_ListMethod(); + virtual ~CommentThreadsResource_ListMethod(); /** - * Clears the 'broadcastStatus' attribute so it is no longer - * set. - */ - void clear_broadcast_status() { - _have_broadcast_status_ = false; - client::ClearCppValueHelper(&broadcast_status_); - } - /** - * @deprecated - * @see clear_broadcast_status + * Clears the 'searchTerms' attribute so it is no longer set. */ - void clear_broadcastStatus() { - clear_broadcast_status(); + void clear_search_terms() { + _have_search_terms_ = false; + client::ClearCppValueHelper(&search_terms_); } + /** - * Gets the optional 'broadcastStatus' attribute. + * Gets the optional 'searchTerms' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_broadcast_status() const { return broadcast_status_; } + const string& get_search_terms() const { return search_terms_; } /** - * Gets a modifiable pointer to the optional broadcastStatus' + * Gets a modifiable pointer to the optional searchTerms' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_broadcastStatus() { - _have_broadcast_status_ = true; - return &broadcast_status_; + string* mutable_searchTerms() { + _have_search_terms_ = true; + return &search_terms_; } /** - * Sets the 'broadcastStatus' attribute. + * Sets the 'searchTerms' attribute. * - * @param[in] value The broadcastStatus parameter filters the API response - * to only include broadcasts with the specified status. + * @param[in] value The searchTerms parameter instructs the API to limit the + * returned comments to those which contain the specified search terms. + * + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ - void set_broadcast_status(const string& value) { - _have_broadcast_status_ = true; - broadcast_status_ = value; + void set_search_terms(const string& value) { + _have_search_terms_ = true; + search_terms_ = value; } /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'allThreadsRelatedToChannelId' attribute so it is + * no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_all_threads_related_to_channel_id() { + _have_all_threads_related_to_channel_id_ = false; + client::ClearCppValueHelper(&all_threads_related_to_channel_id_); } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Gets the optional 'allThreadsRelatedToChannelId' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_all_threads_related_to_channel_id() const { return all_threads_related_to_channel_id_; } /** * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * allThreadsRelatedToChannelId' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_allThreadsRelatedToChannelId() { + _have_all_threads_related_to_channel_id_ = true; + return &all_threads_related_to_channel_id_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * Sets the 'allThreadsRelatedToChannelId' attribute. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The allThreadsRelatedToChannelId parameter instructs the + * API to return the comment threads of all videos of the channel and the + * channel comments as well. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_all_threads_related_to_channel_id(const string& value) { + _have_all_threads_related_to_channel_id_ = true; + all_threads_related_to_channel_id_ = value; } /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'channelId' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_channel_id() { + _have_channel_id_ = false; + client::ClearCppValueHelper(&channel_id_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'channelId' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + const string& get_channel_id() const { return channel_id_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Gets a modifiable pointer to the optional channelId' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + string* mutable_channelId() { + _have_channel_id_ = true; + return &channel_id_; } /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. + * Sets the 'channelId' attribute. * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. + * @param[in] value The channelId parameter instructs the API to return the + * comment threads for all the channel comments (not including comments left + * on videos). */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; + void set_channel_id(const string& value) { + _have_channel_id_ = true; + channel_id_ = value; } /** - * Clears the 'mine' attribute so it is no longer set. + * Clears the 'videoId' attribute so it is no longer set. */ - void clear_mine() { - _have_mine_ = false; - client::ClearCppValueHelper(&mine_); + void clear_video_id() { + _have_video_id_ = false; + client::ClearCppValueHelper(&video_id_); } /** - * Gets the optional 'mine' attribute. + * Gets the optional 'videoId' attribute. * * If the value is not set then the default value will be returned. */ - bool get_mine() const { return mine_; } + const string& get_video_id() const { return video_id_; } /** - * Sets the 'mine' attribute. + * Gets a modifiable pointer to the optional videoId' + * attribute. * - * @param[in] value The mine parameter can be used to instruct the API to - * only return broadcasts owned by the authenticated user. Set the parameter - * value to true to only retrieve your own broadcasts. + * @return The value can be set by dereferencing the pointer. */ - void set_mine(bool value) { - _have_mine_ = true; - mine_ = value; + string* mutable_videoId() { + _have_video_id_ = true; + return &video_id_; + } + + + /** + * Sets the 'videoId' attribute. + * + * @param[in] value The videoId parameter instructs the API to return the + * comment threads for the video specified by the video id. + */ + void set_video_id(const string& value) { + _have_video_id_ = true; + video_id_ = value; } + + /** * Clears the 'maxResults' attribute so it is no longer set. */ @@ -4285,13 +4096,7 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -4305,12 +4110,55 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { * * @param[in] value The maxResults parameter specifies the maximum number of * items that should be returned in the result set. + * + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ void set_max_results(uint32 value) { _have_max_results_ = true; max_results_ = value; } + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of + * comment thread IDs for the resources that should be retrieved. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + + + /** * Clears the 'pageToken' attribute so it is no longer set. */ @@ -4318,13 +4166,7 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -4350,8 +4192,11 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { * * @param[in] value The pageToken parameter identifies a specific page in * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. + * nextPageToken property identifies the next page of the result that can be + * retrieved. + * + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ void set_page_token(const string& value) { _have_page_token_ = true; @@ -4361,42 +4206,136 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'moderationStatus' attribute so it is no longer + * set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_moderation_status() { + _have_moderation_status_ = false; + client::ClearCppValueHelper(&moderation_status_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'moderationStatus' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + const string& get_moderation_status() const { return moderation_status_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Gets a modifiable pointer to the optional moderationStatus' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + string* mutable_moderationStatus() { + _have_moderation_status_ = true; + return &moderation_status_; } /** - * Sets the 'id' attribute. + * Sets the 'moderationStatus' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of - * YouTube broadcast IDs that identify the broadcasts being retrieved. In a - * liveBroadcast resource, the id property specifies the broadcast's ID. + * @param[in] value Set this parameter to limit the returned comment threads + * to a particular moderation state. + * + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + void set_moderation_status(const string& value) { + _have_moderation_status_ = true; + moderation_status_ = value; + } + + + + /** + * Clears the 'textFormat' attribute so it is no longer set. + */ + void clear_text_format() { + _have_text_format_ = false; + client::ClearCppValueHelper(&text_format_); + } + + + /** + * Gets the optional 'textFormat' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_text_format() const { return text_format_; } + + /** + * Gets a modifiable pointer to the optional textFormat' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_textFormat() { + _have_text_format_ = true; + return &text_format_; + } + + + /** + * Sets the 'textFormat' attribute. + * + * @param[in] value Set this parameter's value to html or plainText to + * instruct the API to return the comments left by users in html formatted + * or in plain text. + */ + void set_text_format(const string& value) { + _have_text_format_ = true; + text_format_ = value; + } + + + + /** + * Clears the 'order' attribute so it is no longer set. + */ + void clear_order() { + _have_order_ = false; + client::ClearCppValueHelper(&order_); + } + + + /** + * Gets the optional 'order' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_order() const { return order_; } + + /** + * Gets a modifiable pointer to the optional order' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_order() { + _have_order_ = true; + return &order_; + } + + + /** + * Sets the 'order' attribute. + * + * @param[in] value The order parameter specifies the order in which the API + * response should list comment threads. Valid values are: + *

    + *
    time + *
    Comment threads are ordered by time. This is the default behavior. + *
    relevance + *
    Comment threads are ordered by relevance.Note: This parameter is not + * supported for use in conjunction with the id parameter. + *
    + * + */ + void set_order(const string& value) { + _have_order_ = true; + order_ = value; } /** @@ -4432,36 +4371,42 @@ class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveBroadcastListResponse* data) { + CommentThreadListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string broadcast_status_; - string on_behalf_of_content_owner_; - string on_behalf_of_content_owner_channel_; - bool mine_; + string search_terms_; + string all_threads_related_to_channel_id_; + string channel_id_; + string video_id_; uint32 max_results_; - string page_token_; string id_; - bool _have_broadcast_status_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_mine_ : 1; + string page_token_; + string moderation_status_; + string text_format_; + string order_; + bool _have_search_terms_ : 1; + bool _have_all_threads_related_to_channel_id_ : 1; + bool _have_channel_id_ : 1; + bool _have_video_id_ : 1; bool _have_max_results_ : 1; - bool _have_page_token_ : 1; bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_ListMethod); + bool _have_page_token_ : 1; + bool _have_moderation_status_ : 1; + bool _have_text_format_ : 1; + bool _have_order_ : 1; + DISALLOW_COPY_AND_ASSIGN(CommentThreadsResource_ListMethod); }; typedef client::ServiceRequestPager< - LiveBroadcastsResource_ListMethod, - LiveBroadcastListResponse> - LiveBroadcastsResource_ListMethodPager; + CommentThreadsResource_ListMethod, + CommentThreadListResponse> + CommentThreadsResource_ListMethodPager; /** - * Implements the transition method. + * Implements the update method. * * @ingroup ServiceMethod * @@ -4470,166 +4415,180 @@ typedef client::ServiceRequestPager< * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl */ -class LiveBroadcastsResource_TransitionMethod : public YouTubeServiceBaseRequest { +class CommentThreadsResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] broadcast_status The broadcastStatus parameter identifies the - * state to which the broadcast is changing. Note that to transition a - * broadcast to either the testing or live state, the status.streamStatus must - * be active for the stream that the broadcast is bound to. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * - * @param[in] id The id parameter specifies the unique ID of the broadcast - * that is transitioning to another status. + * The part names that you can include in the parameter value are id, snippet + * and replies. However only snippet contains properties that can be updated. + * @param[in] _content_ The data object to update. + */ + CommentThreadsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const CommentThread& _content_); + + /** + * Standard destructor. + */ + virtual ~CommentThreadsResource_UpdateMethod(); + + + /** + * Appends variable value to the target string. * - * @param[in] part The part parameter specifies a comma-separated list of one - * or more liveBroadcast resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, contentDetails, and status. + * This is a helper function used to resolve templated variables in the URI. * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. */ - LiveBroadcastsResource_TransitionMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& broadcast_status, - const StringPiece& id, - const StringPiece& part); + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); /** - * Standard destructor. + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. */ - virtual ~LiveBroadcastsResource_TransitionMethod(); + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + CommentThread* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + private: + string part_; string _content_; + DISALLOW_COPY_AND_ASSIGN(CommentThreadsResource_UpdateMethod); +}; - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } +/** + * Implements the delete method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class CommentsResource_DeleteMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the comment ID for the resource + * that should be deleted. + */ + CommentsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + /** + * Standard destructor. + */ + virtual ~CommentsResource_DeleteMethod(); - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } + private: + string id_; + DISALLOW_COPY_AND_ASSIGN(CommentsResource_DeleteMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class CommentsResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be set. + * @param[in] _content_ The data object to insert. + */ + CommentsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Comment& _content_); + + /** + * Standard destructor. + */ + virtual ~CommentsResource_InsertMethod(); - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. - */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } /** * Appends variable value to the target string. @@ -4664,23 +4623,17 @@ class LiveBroadcastsResource_TransitionMethod : public YouTubeServiceBaseRequest * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveBroadcast* data) { + Comment* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: - string broadcast_status_; - string id_; - string part_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_TransitionMethod); + string part_; string _content_; + DISALLOW_COPY_AND_ASSIGN(CommentsResource_InsertMethod); }; /** - * Implements the update method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -4689,171 +4642,229 @@ class LiveBroadcastsResource_TransitionMethod : public YouTubeServiceBaseRequest * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl */ -class LiveBroadcastsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class CommentsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, contentDetails, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. For example, a broadcast's privacy status is defined in the - * status part. As such, if your request is updating a private or unlisted - * broadcast, and the request's part parameter value includes the status part, - * the broadcast's privacy setting will be updated to whatever value the - * request body specifies. If the request body does not specify a value, the - * existing privacy setting will be removed and the broadcast will revert to - * the default privacy setting. - * - * @param[in] _content_ The data object to update. - * + * @param[in] part The part parameter specifies the comment resource parts + * that the API response will include. Supported values are id and snippet. */ - LiveBroadcastsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveBroadcast& _content_ - ); + CommentsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~LiveBroadcastsResource_UpdateMethod(); + virtual ~CommentsResource_ListMethod(); /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. + * Clears the 'maxResults' attribute so it is no longer set. */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); } + + /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. + * + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; } /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Clears the 'pageToken' attribute so it is no longer set. + */ + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); + } + + + /** + * Gets the optional 'pageToken' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + const string& get_page_token() const { return page_token_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Gets a modifiable pointer to the optional pageToken' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; } /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. + * Sets the 'pageToken' attribute. * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken property identifies the next page of the result that can be + * retrieved. * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. + * Note: This parameter is not supported for use in conjunction with the id + * parameter. */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; } /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Clears the 'parentId' attribute so it is no longer set. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); + void clear_parent_id() { + _have_parent_id_ = false; + client::ClearCppValueHelper(&parent_id_); } + + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Gets the optional 'parentId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_parent_id() const { return parent_id_; } + + /** + * Gets a modifiable pointer to the optional parentId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + string* mutable_parentId() { + _have_parent_id_ = true; + return &parent_id_; } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Sets the 'parentId' attribute. + * + * @param[in] value The parentId parameter specifies the ID of the comment + * for which replies should be retrieved. + * + * Note: Currently YouTube features only one level of replies (ie replies to + * top level comments). However replies to replies may be supported in the + * future. + */ + void set_parent_id(const string& value) { + _have_parent_id_ = true; + parent_id_ = value; + } + + + + /** + * Clears the 'textFormat' attribute so it is no longer set. + */ + void clear_text_format() { + _have_text_format_ = false; + client::ClearCppValueHelper(&text_format_); + } + + + /** + * Gets the optional 'textFormat' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_text_format() const { return text_format_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets a modifiable pointer to the optional textFormat' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_textFormat() { + _have_text_format_ = true; + return &text_format_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Sets the 'textFormat' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * @param[in] value Set this parameter's value to html or plainText to + * instruct the API to return the comments left by users formatted as HTML + * or as plain text. + */ + void set_text_format(const string& value) { + _have_text_format_ = true; + text_format_ = value; + } + + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * If the value is not set then the default value will be returned. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of + * comment IDs for the resources that should be retrieved. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; } /** @@ -4889,23 +4900,32 @@ class LiveBroadcastsResource_UpdateMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveBroadcast* data) { + CommentListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_UpdateMethod); + uint32 max_results_; + string page_token_; + string parent_id_; + string text_format_; + string id_; + bool _have_max_results_ : 1; + bool _have_page_token_ : 1; + bool _have_parent_id_ : 1; + bool _have_text_format_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(CommentsResource_ListMethod); }; - +typedef client::ServiceRequestPager< + CommentsResource_ListMethod, + CommentListResponse> + CommentsResource_ListMethodPager; /** - * Implements the delete method. + * Implements the markAsSpam method. * * @ingroup ServiceMethod * @@ -4914,154 +4934,29 @@ class LiveBroadcastsResource_UpdateMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl */ -class LiveStreamsResource_DeleteMethod : public YouTubeServiceBaseRequest { +class CommentsResource_MarkAsSpamMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube live stream ID for the - * resource that is being deleted. - * + * @param[in] id The id parameter specifies a comma-separated list of IDs of + * comments which should get flagged as spam. */ - LiveStreamsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + CommentsResource_MarkAsSpamMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~LiveStreamsResource_DeleteMethod(); - - - /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } - - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - - - - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + virtual ~CommentsResource_MarkAsSpamMethod(); - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } - - - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. - */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } /** * Appends variable value to the target string. @@ -5087,15 +4982,11 @@ class LiveStreamsResource_DeleteMethod : public YouTubeServiceBaseRequest { private: string id_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_DeleteMethod); + DISALLOW_COPY_AND_ASSIGN(CommentsResource_MarkAsSpamMethod); }; /** - * Implements the insert method. + * Implements the setModerationStatus method. * * @ingroup ServiceMethod * @@ -5104,162 +4995,133 @@ class LiveStreamsResource_DeleteMethod : public YouTubeServiceBaseRequest { * attribute setters. To invoke the method, call Execute. * * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl */ -class LiveStreamsResource_InsertMethod : public YouTubeServiceBaseRequest { +class CommentsResource_SetModerationStatusMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, cdn, and status. - * - * @param[in] _content_ The data object to insert. - * + * @param[in] id The id parameter specifies a comma-separated list of IDs of + * comments whose moderation status should be updated. + * @param[in] moderation_status Determines the new moderation status of the + * specified comments. */ - LiveStreamsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveStream& _content_ - ); + CommentsResource_SetModerationStatusMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& moderation_status); /** * Standard destructor. */ - virtual ~LiveStreamsResource_InsertMethod(); + virtual ~CommentsResource_SetModerationStatusMethod(); /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'banAuthor' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_ban_author() { + _have_ban_author_ = false; + client::ClearCppValueHelper(&ban_author_); } - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'banAuthor' attribute. * - * @return The value can be set by dereferencing the pointer. + * If the value is not set then the default value will be returned. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - + bool get_ban_author() const { return ban_author_; } /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. + * Sets the 'banAuthor' attribute. * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. + * @param[in] value The banAuthor paramter, if set to true, adds the author + * of the comment to the ban list. This means all future comments of the + * author will autmomatically be rejected. * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. + * Note: This parameter is only valid in combination with moderationStatus + * 'rejected'. */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; + void set_ban_author(bool value) { + _have_ban_author_ = true; + ban_author_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + private: + string id_; + string moderation_status_; + bool ban_author_; + bool _have_ban_author_ : 1; + DISALLOW_COPY_AND_ASSIGN(CommentsResource_SetModerationStatusMethod); +}; - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } +/** + * Implements the update method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class CommentsResource_UpdateMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be updated. + * @param[in] _content_ The data object to update. + */ + CommentsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Comment& _content_); + /** + * Standard destructor. + */ + virtual ~CommentsResource_UpdateMethod(); - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. - */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } /** * Appends variable value to the target string. @@ -5294,19 +5156,17 @@ class LiveStreamsResource_InsertMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveStream* data) { + Comment* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: - string part_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_InsertMethod); + string part_; string _content_; + DISALLOW_COPY_AND_ASSIGN(CommentsResource_UpdateMethod); }; + + /** * Implements the list method. * @@ -5320,11 +5180,10 @@ class LiveStreamsResource_InsertMethod : public YouTubeServiceBaseRequest { * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner */ -class LiveStreamsResource_ListMethod : public YouTubeServiceBaseRequest { +class GuideCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -5332,293 +5191,147 @@ class LiveStreamsResource_ListMethod : public YouTubeServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] part The part parameter specifies a comma-separated list of one - * or more liveStream resource properties that the API response will include. - * The part names that you can include in the parameter value are id, snippet, - * cdn, and status. + * or more guideCategory resource properties that the API response will + * include. The part names that you can include in the parameter value are id + * and snippet. * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * guideCategory resource, the snippet property contains other properties, + * such as the category's title. If you set part=snippet, the API response + * will also contain all of those nested properties. */ - LiveStreamsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + GuideCategoriesResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~LiveStreamsResource_ListMethod(); + virtual ~GuideCategoriesResource_ListMethod(); /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'regionCode' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_region_code() { + _have_region_code_ = false; + client::ClearCppValueHelper(®ion_code_); } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Gets the optional 'regionCode' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_region_code() const { return region_code_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets a modifiable pointer to the optional regionCode' + * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_regionCode() { + _have_region_code_ = true; + return ®ion_code_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * Sets the 'regionCode' attribute. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The regionCode parameter instructs the API to return the + * list of guide categories available in the specified country. The + * parameter value is an ISO 3166-1 alpha-2 country code. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_region_code(const string& value) { + _have_region_code_ = true; + region_code_ = value; } /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'id' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'id' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + const string& get_id() const { return id_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - - - - /** - * Clears the 'mine' attribute so it is no longer set. - */ - void clear_mine() { - _have_mine_ = false; - client::ClearCppValueHelper(&mine_); - } - - - /** - * Gets the optional 'mine' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_mine() const { return mine_; } - - /** - * Sets the 'mine' attribute. - * - * @param[in] value The mine parameter can be used to instruct the API to - * only return streams owned by the authenticated user. Set the parameter - * value to true to only retrieve your own streams. - */ - void set_mine(bool value) { - _have_mine_ = true; - mine_ = value; - } - - /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } - - /** - * Gets the optional 'maxResults' attribute. - * - * If the value is not set then the default value will be returned. - */ - uint32 get_max_results() const { return max_results_; } - - /** - * Sets the 'maxResults' attribute. - * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. Acceptable values are 0 - * to 50, inclusive. The default value is 5. - */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; - } - - /** - * Clears the 'pageToken' attribute so it is no longer set. - */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } - - /** - * Gets the optional 'pageToken' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_page_token() const { return page_token_; } - - /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. + * Gets a modifiable pointer to the optional id' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; + string* mutable_id() { + _have_id_ = true; + return &id_; } /** - * Sets the 'pageToken' attribute. + * Sets the 'id' attribute. * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube channel category ID(s) for the resource(s) that are being + * retrieved. In a guideCategory resource, the id property specifies the + * YouTube channel category ID. */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; + void set_id(const string& value) { + _have_id_ = true; + id_ = value; } /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'hl' attribute so it is no longer set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'hl' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + const string& get_hl() const { return hl_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Gets a modifiable pointer to the optional hl' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + string* mutable_hl() { + _have_hl_ = true; + return &hl_; } /** - * Sets the 'id' attribute. + * Sets the 'hl' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of - * YouTube stream IDs that identify the streams being retrieved. In a - * liveStream resource, the id property specifies the stream's ID. + * @param[in] value The hl parameter specifies the language that will be + * used for text values in the API response. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; } /** @@ -5654,34 +5367,25 @@ class LiveStreamsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveStreamListResponse* data) { + GuideCategoryListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string on_behalf_of_content_owner_; - string on_behalf_of_content_owner_channel_; - bool mine_; - uint32 max_results_; - string page_token_; + string region_code_; string id_; - bool _have_on_behalf_of_content_owner_ : 1; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_mine_ : 1; - bool _have_max_results_ : 1; - bool _have_page_token_ : 1; + string hl_; + bool _have_region_code_ : 1; bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_ListMethod); + bool _have_hl_ : 1; + DISALLOW_COPY_AND_ASSIGN(GuideCategoriesResource_ListMethod); }; -typedef client::ServiceRequestPager< - LiveStreamsResource_ListMethod, - LiveStreamListResponse> - LiveStreamsResource_ListMethodPager; + /** - * Implements the update method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -5692,164 +5396,69 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner */ -class LiveStreamsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class I18nLanguagesResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, cdn, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. If the request body does not specify a value for a mutable - * property, the existing value for that property will be removed. - * - * @param[in] _content_ The data object to update. - * + * @param[in] part The part parameter specifies a comma-separated list of one + * or more i18nLanguage resource properties that the API response will + * include. The part names that you can include in the parameter value are id + * and snippet. */ - LiveStreamsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveStream& _content_ - ); + I18nLanguagesResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~LiveStreamsResource_UpdateMethod(); + virtual ~I18nLanguagesResource_ListMethod(); /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel + * Clears the 'hl' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); } + /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * Gets the optional 'hl' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + const string& get_hl() const { return hl_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. + * Gets a modifiable pointer to the optional hl' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - - - - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_hl() { + _have_hl_ = true; + return &hl_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * Sets the 'hl' attribute. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The hl parameter specifies the language that should be + * used for text values in the API response. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; } /** @@ -5885,90 +5494,21 @@ class LiveStreamsResource_UpdateMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - LiveStream* data) { + I18nLanguageListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string on_behalf_of_content_owner_channel_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_UpdateMethod); + string hl_; + bool _have_hl_ : 1; + DISALLOW_COPY_AND_ASSIGN(I18nLanguagesResource_ListMethod); }; /** - * Implements the delete method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class PlaylistItemsResource_DeleteMethod : public YouTubeServiceBaseRequest { - public: - - - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] id The id parameter specifies the YouTube playlist item ID for - * the playlist item that is being deleted. In a playlistItem resource, the id - * property specifies the playlist item's ID. - * - */ - PlaylistItemsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); - - /** - * Standard destructor. - */ - virtual ~PlaylistItemsResource_DeleteMethod(); - - - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); - - - private: - string id_; - DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_DeleteMethod); -}; - -/** - * Implements the insert method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -5979,95 +5519,69 @@ class PlaylistItemsResource_DeleteMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistItemsResource_InsertMethod : public YouTubeServiceBaseRequest { +class I18nRegionsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, and status. - * - * @param[in] _content_ The data object to insert. - * + * @param[in] part The part parameter specifies a comma-separated list of one + * or more i18nRegion resource properties that the API response will include. + * The part names that you can include in the parameter value are id and + * snippet. */ - PlaylistItemsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const PlaylistItem& _content_ - ); + I18nRegionsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~PlaylistItemsResource_InsertMethod(); + virtual ~I18nRegionsResource_ListMethod(); /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Clears the 'hl' attribute so it is no longer set. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); } + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Gets the optional 'hl' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + const string& get_hl() const { return hl_; } /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Gets a modifiable pointer to the optional hl' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; + string* mutable_hl() { + _have_hl_ = true; + return &hl_; } /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * Sets the 'hl' attribute. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The hl parameter specifies the language that should be + * used for text values in the API response. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; } /** @@ -6103,19 +5617,21 @@ class PlaylistItemsResource_InsertMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - PlaylistItem* data) { + I18nRegionListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_InsertMethod); + string hl_; + bool _have_hl_ : 1; + DISALLOW_COPY_AND_ASSIGN(I18nRegionsResource_ListMethod); }; + + /** - * Implements the list method. + * Implements the bind method. * * @ingroup ServiceMethod * @@ -6126,41 +5642,91 @@ class PlaylistItemsResource_InsertMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly - * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistItemsResource_ListMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_BindMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. + * @param[in] id The id parameter specifies the unique ID of the broadcast + * that is being bound to a video stream. * @param[in] part The part parameter specifies a comma-separated list of one - * or more playlistItem resource properties that the API response will + * or more liveBroadcast resource properties that the API response will * include. The part names that you can include in the parameter value are id, * snippet, contentDetails, and status. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * playlistItem resource, the snippet property contains numerous fields, - * including the title, description, position, and resourceId properties. As - * such, if you set part=snippet, the API response will contain all of those - * properties. - * */ - PlaylistItemsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + LiveBroadcastsResource_BindMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& part); /** * Standard destructor. */ - virtual ~PlaylistItemsResource_ListMethod(); + virtual ~LiveBroadcastsResource_BindMethod(); + + + /** + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. + */ + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } + + + /** + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. + */ + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; + } + /** @@ -6171,13 +5737,7 @@ class PlaylistItemsResource_ListMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -6222,220 +5782,338 @@ class PlaylistItemsResource_ListMethod : public YouTubeServiceBaseRequest { /** - * Clears the 'playlistId' attribute so it is no longer set. - */ - void clear_playlist_id() { - _have_playlist_id_ = false; - client::ClearCppValueHelper(&playlist_id_); - } - /** - * @deprecated - * @see clear_playlist_id + * Clears the 'streamId' attribute so it is no longer set. */ - void clear_playlistId() { - clear_playlist_id(); + void clear_stream_id() { + _have_stream_id_ = false; + client::ClearCppValueHelper(&stream_id_); } + /** - * Gets the optional 'playlistId' attribute. + * Gets the optional 'streamId' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_playlist_id() const { return playlist_id_; } + const string& get_stream_id() const { return stream_id_; } /** - * Gets a modifiable pointer to the optional playlistId' + * Gets a modifiable pointer to the optional streamId' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_playlistId() { - _have_playlist_id_ = true; - return &playlist_id_; + string* mutable_streamId() { + _have_stream_id_ = true; + return &stream_id_; } /** - * Sets the 'playlistId' attribute. + * Sets the 'streamId' attribute. * - * @param[in] value The playlistId parameter specifies the unique ID of the - * playlist for which you want to retrieve playlist items. Note that even - * though this is an optional parameter, every request to retrieve playlist - * items must specify a value for either the id parameter or the playlistId - * parameter. + * @param[in] value The streamId parameter specifies the unique ID of the + * video stream that is being bound to a broadcast. If this parameter is + * omitted, the API will remove any existing binding between the broadcast + * and a video stream. */ - void set_playlist_id(const string& value) { - _have_playlist_id_ = true; - playlist_id_ = value; + void set_stream_id(const string& value) { + _have_stream_id_ = true; + stream_id_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + LiveBroadcast* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string id_; + string part_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + string stream_id_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_stream_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_BindMethod); +}; + +/** + * Implements the control method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class LiveBroadcastsResource_ControlMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the YouTube live broadcast ID that + * uniquely identifies the broadcast in which the slate is being updated. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, contentDetails, and status. + */ + LiveBroadcastsResource_ControlMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~LiveBroadcastsResource_ControlMethod(); /** - * Clears the 'videoId' attribute so it is no longer set. - */ - void clear_video_id() { - _have_video_id_ = false; - client::ClearCppValueHelper(&video_id_); - } - /** - * @deprecated - * @see clear_video_id + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_videoId() { - clear_video_id(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'videoId' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_id() const { return video_id_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional videoId' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoId() { - _have_video_id_ = true; - return &video_id_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'videoId' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The videoId parameter specifies that the request should - * return only the playlist items that contain the specified video. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_video_id(const string& value) { - _have_video_id_ = true; - video_id_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results + * Clears the 'displaySlate' attribute so it is no longer set. */ - void clear_maxResults() { - clear_max_results(); + void clear_display_slate() { + _have_display_slate_ = false; + client::ClearCppValueHelper(&display_slate_); } + /** - * Gets the optional 'maxResults' attribute. + * Gets the optional 'displaySlate' attribute. * * If the value is not set then the default value will be returned. */ - uint32 get_max_results() const { return max_results_; } + bool get_display_slate() const { return display_slate_; } /** - * Sets the 'maxResults' attribute. + * Sets the 'displaySlate' attribute. * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. + * @param[in] value The displaySlate parameter specifies whether the slate + * is being enabled or disabled. */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; + void set_display_slate(bool value) { + _have_display_slate_ = true; + display_slate_ = value; } /** - * Clears the 'pageToken' attribute so it is no longer set. - */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } - /** - * @deprecated - * @see clear_page_token + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_pageToken() { - clear_page_token(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'pageToken' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_page_token() const { return page_token_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Sets the 'pageToken' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'offsetTimeMs' attribute so it is no longer set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_offset_time_ms() { + _have_offset_time_ms_ = false; + client::ClearCppValueHelper(&offset_time_ms_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'offsetTimeMs' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + uint64 get_offset_time_ms() const { return offset_time_ms_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Sets the 'offsetTimeMs' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The offsetTimeMs parameter specifies a positive time + * offset when the specified slate change will occur. The value is measured + * in milliseconds from the beginning of the broadcast's monitor stream, + * which is the time that the testing phase for the broadcast began. Even + * though it is specified in milliseconds, the value is actually an + * approximation, and YouTube completes the requested action as closely as + * possible to that time. + * + * If you do not specify a value for this parameter, then YouTube performs + * the action as soon as possible. See the Getting started guide for more + * details. + * + * Important: You should only specify a value for this parameter if your + * broadcast stream is delayed. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + void set_offset_time_ms(uint64 value) { + _have_offset_time_ms_ = true; + offset_time_ms_ = value; + } + + /** + * Clears the 'walltime' attribute so it is no longer set. + */ + void clear_walltime() { + _have_walltime_ = false; + client::ClearCppValueHelper(&walltime_); } /** - * Sets the 'id' attribute. + * Gets the optional 'walltime' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of one - * or more unique playlist item IDs. + * If the value is not set then the default value will be returned. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + client::DateTime get_walltime() const { return walltime_; } + + /** + * Sets the 'walltime' attribute. + * + * @param[in] value The walltime parameter specifies the wall clock time at + * which the specified slate change will occur. The value is specified in + * ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format. + */ + void set_walltime(client::DateTime value) { + _have_walltime_ = true; + walltime_ = value; } /** @@ -6471,34 +6149,28 @@ class PlaylistItemsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - PlaylistItemListResponse* data) { + LiveBroadcast* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: + string id_; string part_; string on_behalf_of_content_owner_; - string playlist_id_; - string video_id_; - uint32 max_results_; - string page_token_; - string id_; + bool display_slate_; + string on_behalf_of_content_owner_channel_; + uint64 offset_time_ms_; + client::DateTime walltime_; bool _have_on_behalf_of_content_owner_ : 1; - bool _have_playlist_id_ : 1; - bool _have_video_id_ : 1; - bool _have_max_results_ : 1; - bool _have_page_token_ : 1; - bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_ListMethod); + bool _have_display_slate_ : 1; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_offset_time_ms_ : 1; + bool _have_walltime_ : 1; + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_ControlMethod); }; -typedef client::ServiceRequestPager< - PlaylistItemsResource_ListMethod, - PlaylistItemListResponse> - PlaylistItemsResource_ListMethodPager; - /** - * Implements the update method. + * Implements the delete method. * * @ingroup ServiceMethod * @@ -6509,134 +6181,86 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistItemsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_DeleteMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. For example, a playlist item can specify a start time and end - * time, which identify the times portion of the video that should play when - * users watch the video in the playlist. If your request is updating a - * playlist item that sets these values, and the request's part parameter - * value includes the contentDetails part, the playlist item's start and end - * times will be updated to whatever value the request body specifies. If the - * request body does not specify values, the existing start and end times will - * be removed and replaced with the default settings. - * - * @param[in] _content_ The data object to update. - * + * @param[in] id The id parameter specifies the YouTube live broadcast ID for + * the resource that is being deleted. */ - PlaylistItemsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const PlaylistItem& _content_ - ); + LiveBroadcastsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~PlaylistItemsResource_UpdateMethod(); + virtual ~LiveBroadcastsResource_DeleteMethod(); - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + /** + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. + */ + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + } - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); + /** + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - PlaylistItem* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - - private: - string part_; string _content_; - DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_UpdateMethod); -}; - - - -/** - * Implements the delete method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class PlaylistsResource_DeleteMethod : public YouTubeServiceBaseRequest { - public: + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] id The id parameter specifies the YouTube playlist ID for the - * playlist that is being deleted. In a playlist resource, the id property - * specifies the playlist's ID. - * - */ - PlaylistsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + /** + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. + */ + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; + } - /** - * Standard destructor. - */ - virtual ~PlaylistsResource_DeleteMethod(); /** @@ -6647,13 +6271,7 @@ class PlaylistsResource_DeleteMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -6719,9 +6337,11 @@ class PlaylistsResource_DeleteMethod : public YouTubeServiceBaseRequest { private: string id_; + string on_behalf_of_content_owner_channel_; string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_DeleteMethod); + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_DeleteMethod); }; /** @@ -6736,12 +6356,9 @@ class PlaylistsResource_DeleteMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_InsertMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6752,23 +6369,20 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { * It identifies the properties that the write operation will set as well as * the properties that the API response will include. * - * The part names that you can include in the parameter value are snippet and - * status. - * + * The part properties that you can include in the parameter value are id, + * snippet, contentDetails, and status. * @param[in] _content_ The data object to insert. - * */ - PlaylistsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Playlist& _content_ - ); + LiveBroadcastsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveBroadcast& _content_); /** * Standard destructor. */ - virtual ~PlaylistsResource_InsertMethod(); + virtual ~LiveBroadcastsResource_InsertMethod(); /** @@ -6779,13 +6393,7 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_channel_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } + /** * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. @@ -6844,13 +6452,7 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -6925,7 +6527,7 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - Playlist* data) { + LiveBroadcast* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } @@ -6935,7 +6537,7 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { string on_behalf_of_content_owner_; bool _have_on_behalf_of_content_owner_channel_ : 1; bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_InsertMethod); + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_InsertMethod); }; /** @@ -6951,12 +6553,9 @@ class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtube.readonly - * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. @@ -6964,26 +6563,61 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { * In practice this is supplied by the user code that is * creating the method instance. * @param[in] part The part parameter specifies a comma-separated list of one - * or more playlist resource properties that the API response will include. - * The part names that you can include in the parameter value are id, snippet, - * status, and contentDetails. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * playlist resource, the snippet property contains properties like author, - * title, description, tags, and timeCreated. As such, if you set - * part=snippet, the API response will contain all of those properties. - * + * or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, contentDetails, and status. */ - PlaylistsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + LiveBroadcastsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~PlaylistsResource_ListMethod(); + virtual ~LiveBroadcastsResource_ListMethod(); + + + /** + * Clears the 'broadcastStatus' attribute so it is no longer + * set. + */ + void clear_broadcast_status() { + _have_broadcast_status_ = false; + client::ClearCppValueHelper(&broadcast_status_); + } + + + /** + * Gets the optional 'broadcastStatus' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_broadcast_status() const { return broadcast_status_; } + + /** + * Gets a modifiable pointer to the optional broadcastStatus' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_broadcastStatus() { + _have_broadcast_status_ = true; + return &broadcast_status_; + } + + + /** + * Sets the 'broadcastStatus' attribute. + * + * @param[in] value The broadcastStatus parameter filters the API response + * to only include broadcasts with the specified status. + */ + void set_broadcast_status(const string& value) { + _have_broadcast_status_ = true; + broadcast_status_ = value; + } + /** @@ -6994,13 +6628,7 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -7052,13 +6680,7 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_channel_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } + /** * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. @@ -7109,53 +6731,6 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { - /** - * Clears the 'channelId' attribute so it is no longer set. - */ - void clear_channel_id() { - _have_channel_id_ = false; - client::ClearCppValueHelper(&channel_id_); - } - /** - * @deprecated - * @see clear_channel_id - */ - void clear_channelId() { - clear_channel_id(); - } - - /** - * Gets the optional 'channelId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_channel_id() const { return channel_id_; } - - /** - * Gets a modifiable pointer to the optional channelId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_channelId() { - _have_channel_id_ = true; - return &channel_id_; - } - - - /** - * Sets the 'channelId' attribute. - * - * @param[in] value This value indicates that the API should only return the - * specified channel's playlists. - */ - void set_channel_id(const string& value) { - _have_channel_id_ = true; - channel_id_ = value; - } - - - /** * Clears the 'mine' attribute so it is no longer set. */ @@ -7175,8 +6750,9 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { /** * Sets the 'mine' attribute. * - * @param[in] value Set this parameter's value to true to instruct the API - * to only return playlists owned by the authenticated user. + * @param[in] value The mine parameter can be used to instruct the API to + * only return broadcasts owned by the authenticated user. Set the parameter + * value to true to only retrieve your own broadcasts. */ void set_mine(bool value) { _have_mine_ = true; @@ -7190,13 +6766,7 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { _have_max_results_ = false; client::ClearCppValueHelper(&max_results_); } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } + /** * Gets the optional 'maxResults' attribute. @@ -7223,13 +6793,7 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { _have_page_token_ = false; client::ClearCppValueHelper(&page_token_); } - /** - * @deprecated - * @see clear_page_token - */ - void clear_pageToken() { - clear_page_token(); - } + /** * Gets the optional 'pageToken' attribute. @@ -7295,10 +6859,9 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { /** * Sets the 'id' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube playlist ID(s) for the resource(s) that are being retrieved. In a - * playlist resource, the id property specifies the playlist's YouTube - * playlist ID. + * @param[in] value The id parameter specifies a comma-separated list of + * YouTube broadcast IDs that identify the broadcasts being retrieved. In a + * liveBroadcast resource, the id property specifies the broadcast's ID. */ void set_id(const string& value) { _have_id_ = true; @@ -7338,36 +6901,36 @@ class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - PlaylistListResponse* data) { + LiveBroadcastListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; + string broadcast_status_; string on_behalf_of_content_owner_; string on_behalf_of_content_owner_channel_; - string channel_id_; bool mine_; uint32 max_results_; string page_token_; string id_; + bool _have_broadcast_status_ : 1; bool _have_on_behalf_of_content_owner_ : 1; bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_channel_id_ : 1; bool _have_mine_ : 1; bool _have_max_results_ : 1; bool _have_page_token_ : 1; bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_ListMethod); + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_ListMethod); }; typedef client::ServiceRequestPager< - PlaylistsResource_ListMethod, - PlaylistListResponse> - PlaylistsResource_ListMethodPager; + LiveBroadcastsResource_ListMethod, + LiveBroadcastListResponse> + LiveBroadcastsResource_ListMethodPager; /** - * Implements the update method. + * Implements the transition method. * * @ingroup ServiceMethod * @@ -7378,49 +6941,96 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner */ -class PlaylistsResource_UpdateMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_TransitionMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet and - * status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. For example, a playlist's privacy setting is contained in the - * status part. As such, if your request is updating a private playlist, and - * the request's part parameter value includes the status part, the playlist's - * privacy setting will be updated to whatever value the request body - * specifies. If the request body does not specify a value, the existing - * privacy setting will be removed and the playlist will revert to the default - * privacy setting. - * - * @param[in] _content_ The data object to update. - * + * @param[in] broadcast_status The broadcastStatus parameter identifies the + * state to which the broadcast is changing. Note that to transition a + * broadcast to either the testing or live state, the status.streamStatus must + * be active for the stream that the broadcast is bound to. + * @param[in] id The id parameter specifies the unique ID of the broadcast + * that is transitioning to another status. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, contentDetails, and status. */ - PlaylistsResource_UpdateMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Playlist& _content_ - ); + LiveBroadcastsResource_TransitionMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& broadcast_status, + const StringPiece& id, + const StringPiece& part); /** * Standard destructor. */ - virtual ~PlaylistsResource_UpdateMethod(); + virtual ~LiveBroadcastsResource_TransitionMethod(); + + + /** + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. + */ + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } + + + /** + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. + */ + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; + } + /** @@ -7431,13 +7041,7 @@ class PlaylistsResource_UpdateMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -7512,21 +7116,23 @@ class PlaylistsResource_UpdateMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - Playlist* data) { + LiveBroadcast* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: + string broadcast_status_; + string id_; string part_; + string on_behalf_of_content_owner_channel_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_UpdateMethod); + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_TransitionMethod); }; - - /** - * Implements the list method. + * Implements the update method. * * @ingroup ServiceMethod * @@ -7537,313 +7143,477 @@ class PlaylistsResource_UpdateMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly - * https://www.googleapis.com/auth/youtubepartner */ -class SearchResource_ListMethod : public YouTubeServiceBaseRequest { +class LiveBroadcastsResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more search resource properties that the API response will include. The - * part names that you can include in the parameter value are id and snippet. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a search - * result, the snippet property contains other properties that identify the - * result's title, description, and so forth. If you set part=snippet, the API - * response will also contain all of those nested properties. + * The part properties that you can include in the parameter value are id, + * snippet, contentDetails, and status. * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. For example, a broadcast's privacy status is defined in the + * status part. As such, if your request is updating a private or unlisted + * broadcast, and the request's part parameter value includes the status part, + * the broadcast's privacy setting will be updated to whatever value the + * request body specifies. If the request body does not specify a value, the + * existing privacy setting will be removed and the broadcast will revert to + * the default privacy setting. + * @param[in] _content_ The data object to update. */ - SearchResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + LiveBroadcastsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveBroadcast& _content_); /** * Standard destructor. */ - virtual ~SearchResource_ListMethod(); + virtual ~LiveBroadcastsResource_UpdateMethod(); /** - * Clears the 'eventType' attribute so it is no longer set. - */ - void clear_event_type() { - _have_event_type_ = false; - client::ClearCppValueHelper(&event_type_); - } - /** - * @deprecated - * @see clear_event_type + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_eventType() { - clear_event_type(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'eventType' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_event_type() const { return event_type_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional eventType' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_eventType() { - _have_event_type_ = true; - return &event_type_; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Sets the 'eventType' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The eventType parameter restricts a search to broadcast - * events. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_event_type(const string& value) { - _have_event_type_ = true; - event_type_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'channelId' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_channel_id() { - _have_channel_id_ = false; - client::ClearCppValueHelper(&channel_id_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + + /** - * @deprecated - * @see clear_channel_id - */ - void clear_channelId() { - clear_channel_id(); - } - - /** - * Gets the optional 'channelId' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_channel_id() const { return channel_id_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional channelId' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_channelId() { - _have_channel_id_ = true; - return &channel_id_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'channelId' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The channelId parameter indicates that the API response - * should only contain resources created by the channel. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_channel_id(const string& value) { - _have_channel_id_ = true; - channel_id_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Clears the 'videoSyndicated' attribute so it is no longer - * set. - */ - void clear_video_syndicated() { - _have_video_syndicated_ = false; - client::ClearCppValueHelper(&video_syndicated_); - } - /** - * @deprecated - * @see clear_video_syndicated - */ - void clear_videoSyndicated() { - clear_video_syndicated(); - } - /** - * Gets the optional 'videoSyndicated' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_video_syndicated() const { return video_syndicated_; } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + LiveBroadcast* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } - /** - * Gets a modifiable pointer to the optional videoSyndicated' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_videoSyndicated() { - _have_video_syndicated_ = true; - return &video_syndicated_; - } + private: + string part_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource_UpdateMethod); +}; - /** - * Sets the 'videoSyndicated' attribute. - * - * @param[in] value The videoSyndicated parameter lets you to restrict a - * search to only videos that can be played outside youtube.com. - */ - void set_video_syndicated(const string& value) { - _have_video_syndicated_ = true; - video_syndicated_ = value; - } +/** + * Implements the delete method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class LiveStreamsResource_DeleteMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the YouTube live stream ID for the + * resource that is being deleted. + */ + LiveStreamsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + + /** + * Standard destructor. + */ + virtual ~LiveStreamsResource_DeleteMethod(); /** - * Clears the 'channelType' attribute so it is no longer set. - */ - void clear_channel_type() { - _have_channel_type_ = false; - client::ClearCppValueHelper(&channel_type_); - } - /** - * @deprecated - * @see clear_channel_type + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_channelType() { - clear_channel_type(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'channelType' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_channel_type() const { return channel_type_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional channelType' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_channelType() { - _have_channel_type_ = true; - return &channel_type_; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Sets the 'channelType' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The channelType parameter lets you restrict a search to - * a particular type of channel. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_channel_type(const string& value) { - _have_channel_type_ = true; - channel_type_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'videoCaption' attribute so it is no longer set. - */ - void clear_video_caption() { - _have_video_caption_ = false; - client::ClearCppValueHelper(&video_caption_); - } - /** - * @deprecated - * @see clear_video_caption + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_videoCaption() { - clear_video_caption(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'videoCaption' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_caption() const { return video_caption_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional videoCaption' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoCaption() { - _have_video_caption_ = true; - return &video_caption_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'videoCaption' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The videoCaption parameter indicates whether the API - * should filter video search results based on whether they have captions. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_video_caption(const string& value) { - _have_video_caption_ = true; - video_caption_ = value; - } - + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + private: + string id_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_DeleteMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class LiveStreamsResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, cdn, and status. + * @param[in] _content_ The data object to insert. + */ + LiveStreamsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveStream& _content_); + + /** + * Standard destructor. + */ + virtual ~LiveStreamsResource_InsertMethod(); /** - * Clears the 'publishedAfter' attribute so it is no longer - * set. + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_published_after() { - _have_published_after_ = false; - client::ClearCppValueHelper(&published_after_); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + + /** - * @deprecated - * @see clear_published_after + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. */ - void clear_publishedAfter() { - clear_published_after(); - } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets the optional 'publishedAfter' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * - * If the value is not set then the default value will be returned. + * @return The value can be set by dereferencing the pointer. */ - client::DateTime get_published_after() const { return published_after_; } + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } + /** - * Sets the 'publishedAfter' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The publishedAfter parameter indicates that the API - * response should only contain resources created after the specified time. - * The value is an RFC 3339 formatted date-time value - * (1970-01-01T00:00:00Z). + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_published_after(client::DateTime value) { - _have_published_after_ = true; - published_after_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } + + /** * Clears the 'onBehalfOfContentOwner' attribute so it is no * longer set. @@ -7852,13 +7622,7 @@ class SearchResource_ListMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -7900,997 +7664,4385 @@ class SearchResource_ListMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + LiveStream* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_InsertMethod); +}; + +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + */ +class LiveStreamsResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more liveStream resource properties that the API response will include. + * The part names that you can include in the parameter value are id, snippet, + * cdn, and status. + */ + LiveStreamsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~LiveStreamsResource_ListMethod(); /** - * Clears the 'pageToken' attribute so it is no longer set. - */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } - /** - * @deprecated - * @see clear_page_token + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_pageToken() { - clear_page_token(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'pageToken' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_page_token() const { return page_token_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'pageToken' attribute. - * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. - */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; - } - - - - /** - * Clears the 'forContentOwner' attribute so it is no longer - * set. - */ - void clear_for_content_owner() { - _have_for_content_owner_ = false; - client::ClearCppValueHelper(&for_content_owner_); - } - /** - * @deprecated - * @see clear_for_content_owner - */ - void clear_forContentOwner() { - clear_for_content_owner(); - } - - /** - * Gets the optional 'forContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_for_content_owner() const { return for_content_owner_; } - - /** - * Sets the 'forContentOwner' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * * @param[in] value Note: This parameter is intended exclusively for YouTube * content partners. * - * The forContentOwner parameter restricts the search to only retrieve - * resources owned by the content owner specified by the - * onBehalfOfContentOwner parameter. The user must be authenticated using a - * CMS account linked to the specified content owner and - * onBehalfOfContentOwner must be provided. + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_for_content_owner(bool value) { - _have_for_content_owner_ = true; - for_content_owner_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } + + /** - * Clears the 'regionCode' attribute so it is no longer set. - */ - void clear_region_code() { - _have_region_code_ = false; - client::ClearCppValueHelper(®ion_code_); - } - /** - * @deprecated - * @see clear_region_code + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_regionCode() { - clear_region_code(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'regionCode' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_region_code() const { return region_code_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional regionCode' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_regionCode() { - _have_region_code_ = true; - return ®ion_code_; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Sets the 'regionCode' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The regionCode parameter instructs the API to return - * search results for the specified country. The parameter value is an ISO - * 3166-1 alpha-2 country code. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_region_code(const string& value) { - _have_region_code_ = true; - region_code_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'location' attribute so it is no longer set. + * Clears the 'mine' attribute so it is no longer set. */ - void clear_location() { - _have_location_ = false; - client::ClearCppValueHelper(&location_); + void clear_mine() { + _have_mine_ = false; + client::ClearCppValueHelper(&mine_); } /** - * Gets the optional 'location' attribute. + * Gets the optional 'mine' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_location() const { return location_; } + bool get_mine() const { return mine_; } /** - * Gets a modifiable pointer to the optional location' - * attribute. + * Sets the 'mine' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The mine parameter can be used to instruct the API to + * only return streams owned by the authenticated user. Set the parameter + * value to true to only retrieve your own streams. */ - string* mutable_location() { - _have_location_ = true; - return &location_; + void set_mine(bool value) { + _have_mine_ = true; + mine_ = value; } - /** - * Sets the 'location' attribute. - * - * @param[in] value The location parameter restricts a search to videos that - * have a geographical location specified in their metadata. The value is a - * string that specifies geographic latitude/longitude coordinates e.g. - * (37.42307,-122.08427). + * Clears the 'maxResults' attribute so it is no longer set. */ - void set_location(const string& value) { - _have_location_ = true; - location_ = value; + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); } - - /** - * Clears the 'locationRadius' attribute so it is no longer - * set. - */ - void clear_location_radius() { - _have_location_radius_ = false; - client::ClearCppValueHelper(&location_radius_); - } - /** - * @deprecated - * @see clear_location_radius - */ - void clear_locationRadius() { - clear_location_radius(); - } - /** - * Gets the optional 'locationRadius' attribute. + * Gets the optional 'maxResults' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_location_radius() const { return location_radius_; } + uint32 get_max_results() const { return max_results_; } /** - * Gets a modifiable pointer to the optional locationRadius' - * attribute. + * Sets the 'maxResults' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. Acceptable values are 0 + * to 50, inclusive. The default value is 5. */ - string* mutable_locationRadius() { - _have_location_radius_ = true; - return &location_radius_; + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; } - /** - * Sets the 'locationRadius' attribute. - * - * @param[in] value The locationRadius, in conjunction with the location - * parameter, defines a geographic area. If the geographic coordinates - * associated with a video fall within that area, then the video may be - * included in search results. This parameter value must be a floating point - * number followed by a measurement unit. Valid measurement units are m, km, - * ft, and mi. For example, valid parameter values include 1500m, 5km, - * 10000ft, and 0.75mi. The API does not support locationRadius parameter - * values larger than 1000 kilometers. + * Clears the 'pageToken' attribute so it is no longer set. */ - void set_location_radius(const string& value) { - _have_location_radius_ = true; - location_radius_ = value; + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); } - - /** - * Clears the 'videoType' attribute so it is no longer set. - */ - void clear_video_type() { - _have_video_type_ = false; - client::ClearCppValueHelper(&video_type_); - } - /** - * @deprecated - * @see clear_video_type - */ - void clear_videoType() { - clear_video_type(); - } - /** - * Gets the optional 'videoType' attribute. + * Gets the optional 'pageToken' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_type() const { return video_type_; } + const string& get_page_token() const { return page_token_; } /** - * Gets a modifiable pointer to the optional videoType' + * Gets a modifiable pointer to the optional pageToken' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoType() { - _have_video_type_ = true; - return &video_type_; + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; } /** - * Sets the 'videoType' attribute. + * Sets the 'pageToken' attribute. * - * @param[in] value The videoType parameter lets you restrict a search to a - * particular type of videos. + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. */ - void set_video_type(const string& value) { - _have_video_type_ = true; - video_type_ = value; + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; } /** - * Clears the 'type' attribute so it is no longer set. + * Clears the 'id' attribute so it is no longer set. */ - void clear_type() { - _have_type_ = false; - client::ClearCppValueHelper(&type_); + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); } /** - * Gets the optional 'type' attribute. + * Gets the optional 'id' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_type() const { return type_; } + const string& get_id() const { return id_; } /** - * Gets a modifiable pointer to the optional type' attribute. + * Gets a modifiable pointer to the optional id' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_type() { - _have_type_ = true; - return &type_; + string* mutable_id() { + _have_id_ = true; + return &id_; } /** - * Sets the 'type' attribute. + * Sets the 'id' attribute. * - * @param[in] value The type parameter restricts a search query to only - * retrieve a particular type of resource. The value is a comma-separated - * list of resource types. + * @param[in] value The id parameter specifies a comma-separated list of + * YouTube stream IDs that identify the streams being retrieved. In a + * liveStream resource, the id property specifies the stream's ID. */ - void set_type(const string& value) { - _have_type_ = true; - type_ = value; + void set_id(const string& value) { + _have_id_ = true; + id_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Clears the 'topicId' attribute so it is no longer set. - */ - void clear_topic_id() { - _have_topic_id_ = false; - client::ClearCppValueHelper(&topic_id_); - } - /** - * @deprecated - * @see clear_topic_id - */ - void clear_topicId() { - clear_topic_id(); - } - /** - * Gets the optional 'topicId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_topic_id() const { return topic_id_; } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + LiveStreamListResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } - /** - * Gets a modifiable pointer to the optional topicId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_topicId() { - _have_topic_id_ = true; - return &topic_id_; - } + private: + string part_; + string on_behalf_of_content_owner_; + string on_behalf_of_content_owner_channel_; + bool mine_; + uint32 max_results_; + string page_token_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_mine_ : 1; + bool _have_max_results_ : 1; + bool _have_page_token_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_ListMethod); +}; +typedef client::ServiceRequestPager< + LiveStreamsResource_ListMethod, + LiveStreamListResponse> + LiveStreamsResource_ListMethodPager; - /** - * Sets the 'topicId' attribute. - * - * @param[in] value The topicId parameter indicates that the API response - * should only contain resources associated with the specified topic. The - * value identifies a Freebase topic ID. - */ - void set_topic_id(const string& value) { - _have_topic_id_ = true; - topic_id_ = value; - } +/** + * Implements the update method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + */ +class LiveStreamsResource_UpdateMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, cdn, and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. If the request body does not specify a value for a mutable + * property, the existing value for that property will be removed. + * @param[in] _content_ The data object to update. + */ + LiveStreamsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveStream& _content_); + /** + * Standard destructor. + */ + virtual ~LiveStreamsResource_UpdateMethod(); /** - * Clears the 'publishedBefore' attribute so it is no longer - * set. - */ - void clear_published_before() { - _have_published_before_ = false; - client::ClearCppValueHelper(&published_before_); - } - /** - * @deprecated - * @see clear_published_before + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_publishedBefore() { - clear_published_before(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'publishedBefore' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - client::DateTime get_published_before() const { return published_before_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Sets the 'publishedBefore' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The publishedBefore parameter indicates that the API - * response should only contain resources created before the specified time. - * The value is an RFC 3339 formatted date-time value - * (1970-01-01T00:00:00Z). + * @return The value can be set by dereferencing the pointer. */ - void set_published_before(client::DateTime value) { - _have_published_before_ = true; - published_before_ = value; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } + /** - * Clears the 'videoDimension' attribute so it is no longer - * set. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void clear_video_dimension() { - _have_video_dimension_ = false; - client::ClearCppValueHelper(&video_dimension_); + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } + + + /** - * @deprecated - * @see clear_video_dimension + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_videoDimension() { - clear_video_dimension(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'videoDimension' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_dimension() const { return video_dimension_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional videoDimension' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoDimension() { - _have_video_dimension_ = true; - return &video_dimension_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'videoDimension' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The videoDimension parameter lets you restrict a search - * to only retrieve 2D or 3D videos. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_video_dimension(const string& value) { - _have_video_dimension_ = true; - video_dimension_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } - - - /** - * Clears the 'videoLicense' attribute so it is no longer set. - */ - void clear_video_license() { + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + LiveStream* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource_UpdateMethod); +}; + + + +/** + * Implements the delete method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistItemsResource_DeleteMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the YouTube playlist item ID for + * the playlist item that is being deleted. In a playlistItem resource, the id + * property specifies the playlist item's ID. + */ + PlaylistItemsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + + /** + * Standard destructor. + */ + virtual ~PlaylistItemsResource_DeleteMethod(); + + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + private: + string id_; + DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_DeleteMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistItemsResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, and status. + * @param[in] _content_ The data object to insert. + */ + PlaylistItemsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const PlaylistItem& _content_); + + /** + * Standard destructor. + */ + virtual ~PlaylistItemsResource_InsertMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + PlaylistItem* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_InsertMethod); +}; + +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistItemsResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more playlistItem resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, contentDetails, and status. + * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * playlistItem resource, the snippet property contains numerous fields, + * including the title, description, position, and resourceId properties. As + * such, if you set part=snippet, the API response will contain all of those + * properties. + */ + PlaylistItemsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~PlaylistItemsResource_ListMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + + + /** + * Clears the 'playlistId' attribute so it is no longer set. + */ + void clear_playlist_id() { + _have_playlist_id_ = false; + client::ClearCppValueHelper(&playlist_id_); + } + + + /** + * Gets the optional 'playlistId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_playlist_id() const { return playlist_id_; } + + /** + * Gets a modifiable pointer to the optional playlistId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_playlistId() { + _have_playlist_id_ = true; + return &playlist_id_; + } + + + /** + * Sets the 'playlistId' attribute. + * + * @param[in] value The playlistId parameter specifies the unique ID of the + * playlist for which you want to retrieve playlist items. Note that even + * though this is an optional parameter, every request to retrieve playlist + * items must specify a value for either the id parameter or the playlistId + * parameter. + */ + void set_playlist_id(const string& value) { + _have_playlist_id_ = true; + playlist_id_ = value; + } + + + + /** + * Clears the 'videoId' attribute so it is no longer set. + */ + void clear_video_id() { + _have_video_id_ = false; + client::ClearCppValueHelper(&video_id_); + } + + + /** + * Gets the optional 'videoId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_id() const { return video_id_; } + + /** + * Gets a modifiable pointer to the optional videoId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoId() { + _have_video_id_ = true; + return &video_id_; + } + + + /** + * Sets the 'videoId' attribute. + * + * @param[in] value The videoId parameter specifies that the request should + * return only the playlist items that contain the specified video. + */ + void set_video_id(const string& value) { + _have_video_id_ = true; + video_id_ = value; + } + + + + /** + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } + + + /** + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. + */ + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; + } + + /** + * Clears the 'pageToken' attribute so it is no longer set. + */ + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); + } + + + /** + * Gets the optional 'pageToken' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_page_token() const { return page_token_; } + + /** + * Gets a modifiable pointer to the optional pageToken' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; + } + + + /** + * Sets the 'pageToken' attribute. + * + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. + */ + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; + } + + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of one + * or more unique playlist item IDs. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + PlaylistItemListResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_; + string playlist_id_; + string video_id_; + uint32 max_results_; + string page_token_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_playlist_id_ : 1; + bool _have_video_id_ : 1; + bool _have_max_results_ : 1; + bool _have_page_token_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_ListMethod); +}; + +typedef client::ServiceRequestPager< + PlaylistItemsResource_ListMethod, + PlaylistItemListResponse> + PlaylistItemsResource_ListMethodPager; + +/** + * Implements the update method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistItemsResource_UpdateMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. For example, a playlist item can specify a start time and end + * time, which identify the times portion of the video that should play when + * users watch the video in the playlist. If your request is updating a + * playlist item that sets these values, and the request's part parameter + * value includes the contentDetails part, the playlist item's start and end + * times will be updated to whatever value the request body specifies. If the + * request body does not specify values, the existing start and end times will + * be removed and replaced with the default settings. + * @param[in] _content_ The data object to update. + */ + PlaylistItemsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const PlaylistItem& _content_); + + /** + * Standard destructor. + */ + virtual ~PlaylistItemsResource_UpdateMethod(); + + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + PlaylistItem* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; string _content_; + DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource_UpdateMethod); +}; + + + +/** + * Implements the delete method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistsResource_DeleteMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the YouTube playlist ID for the + * playlist that is being deleted. In a playlist resource, the id property + * specifies the playlist's ID. + */ + PlaylistsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + + /** + * Standard destructor. + */ + virtual ~PlaylistsResource_DeleteMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + private: + string id_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_DeleteMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistsResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet and + * status. + * @param[in] _content_ The data object to insert. + */ + PlaylistsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Playlist& _content_); + + /** + * Standard destructor. + */ + virtual ~PlaylistsResource_InsertMethod(); + + + /** + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. + */ + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } + + + /** + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. + */ + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; + } + + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + Playlist* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_channel_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_InsertMethod); +}; + +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistsResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more playlist resource properties that the API response will include. + * The part names that you can include in the parameter value are id, snippet, + * status, and contentDetails. + * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * playlist resource, the snippet property contains properties like author, + * title, description, tags, and timeCreated. As such, if you set + * part=snippet, the API response will contain all of those properties. + */ + PlaylistsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~PlaylistsResource_ListMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + + + /** + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. + */ + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; + } + + + /** + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. + */ + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; + } + + + + /** + * Clears the 'channelId' attribute so it is no longer set. + */ + void clear_channel_id() { + _have_channel_id_ = false; + client::ClearCppValueHelper(&channel_id_); + } + + + /** + * Gets the optional 'channelId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_channel_id() const { return channel_id_; } + + /** + * Gets a modifiable pointer to the optional channelId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_channelId() { + _have_channel_id_ = true; + return &channel_id_; + } + + + /** + * Sets the 'channelId' attribute. + * + * @param[in] value This value indicates that the API should only return the + * specified channel's playlists. + */ + void set_channel_id(const string& value) { + _have_channel_id_ = true; + channel_id_ = value; + } + + + + /** + * Clears the 'mine' attribute so it is no longer set. + */ + void clear_mine() { + _have_mine_ = false; + client::ClearCppValueHelper(&mine_); + } + + + /** + * Gets the optional 'mine' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_mine() const { return mine_; } + + /** + * Sets the 'mine' attribute. + * + * @param[in] value Set this parameter's value to true to instruct the API + * to only return playlists owned by the authenticated user. + */ + void set_mine(bool value) { + _have_mine_ = true; + mine_ = value; + } + + /** + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } + + + /** + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. + */ + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; + } + + /** + * Clears the 'pageToken' attribute so it is no longer set. + */ + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); + } + + + /** + * Gets the optional 'pageToken' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_page_token() const { return page_token_; } + + /** + * Gets a modifiable pointer to the optional pageToken' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; + } + + + /** + * Sets the 'pageToken' attribute. + * + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. + */ + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; + } + + + + /** + * Clears the 'hl' attribute so it is no longer set. + */ + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); + } + + + /** + * Gets the optional 'hl' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_hl() const { return hl_; } + + /** + * Gets a modifiable pointer to the optional hl' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_hl() { + _have_hl_ = true; + return &hl_; + } + + + /** + * Sets the 'hl' attribute. + * + * @param[in] value The hl parameter should be used for filter out the + * properties that are not in the given language. Used for the snippet part. + */ + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; + } + + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube playlist ID(s) for the resource(s) that are being retrieved. In a + * playlist resource, the id property specifies the playlist's YouTube + * playlist ID. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + PlaylistListResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_; + string on_behalf_of_content_owner_channel_; + string channel_id_; + bool mine_; + uint32 max_results_; + string page_token_; + string hl_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_channel_id_ : 1; + bool _have_mine_ : 1; + bool _have_max_results_ : 1; + bool _have_page_token_ : 1; + bool _have_hl_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_ListMethod); +}; + +typedef client::ServiceRequestPager< + PlaylistsResource_ListMethod, + PlaylistListResponse> + PlaylistsResource_ListMethodPager; + +/** + * Implements the update method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class PlaylistsResource_UpdateMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet and + * status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. For example, a playlist's privacy setting is contained in the + * status part. As such, if your request is updating a private playlist, and + * the request's part parameter value includes the status part, the playlist's + * privacy setting will be updated to whatever value the request body + * specifies. If the request body does not specify a value, the existing + * privacy setting will be removed and the playlist will revert to the default + * privacy setting. + * @param[in] _content_ The data object to update. + */ + PlaylistsResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Playlist& _content_); + + /** + * Standard destructor. + */ + virtual ~PlaylistsResource_UpdateMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + Playlist* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(PlaylistsResource_UpdateMethod); +}; + + + +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner + */ +class SearchResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more search resource properties that the API response will include. The + * part names that you can include in the parameter value are id and snippet. + * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a search + * result, the snippet property contains other properties that identify the + * result's title, description, and so forth. If you set part=snippet, the API + * response will also contain all of those nested properties. + */ + SearchResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~SearchResource_ListMethod(); + + + /** + * Clears the 'eventType' attribute so it is no longer set. + */ + void clear_event_type() { + _have_event_type_ = false; + client::ClearCppValueHelper(&event_type_); + } + + + /** + * Gets the optional 'eventType' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_event_type() const { return event_type_; } + + /** + * Gets a modifiable pointer to the optional eventType' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_eventType() { + _have_event_type_ = true; + return &event_type_; + } + + + /** + * Sets the 'eventType' attribute. + * + * @param[in] value The eventType parameter restricts a search to broadcast + * events. + */ + void set_event_type(const string& value) { + _have_event_type_ = true; + event_type_ = value; + } + + + + /** + * Clears the 'channelId' attribute so it is no longer set. + */ + void clear_channel_id() { + _have_channel_id_ = false; + client::ClearCppValueHelper(&channel_id_); + } + + + /** + * Gets the optional 'channelId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_channel_id() const { return channel_id_; } + + /** + * Gets a modifiable pointer to the optional channelId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_channelId() { + _have_channel_id_ = true; + return &channel_id_; + } + + + /** + * Sets the 'channelId' attribute. + * + * @param[in] value The channelId parameter indicates that the API response + * should only contain resources created by the channel. + */ + void set_channel_id(const string& value) { + _have_channel_id_ = true; + channel_id_ = value; + } + + + + /** + * Clears the 'forDeveloper' attribute so it is no longer set. + */ + void clear_for_developer() { + _have_for_developer_ = false; + client::ClearCppValueHelper(&for_developer_); + } + + + /** + * Gets the optional 'forDeveloper' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_for_developer() const { return for_developer_; } + + /** + * Sets the 'forDeveloper' attribute. + * + * @param[in] value The forDeveloper parameter restricts the search to only + * retrieve videos uploaded via the developer's application or website. The + * API server uses the request's authorization credentials to identify the + * developer. Therefore, a developer can restrict results to videos uploaded + * through the developer's own app or website but not to videos uploaded + * through other apps or sites. + */ + void set_for_developer(bool value) { + _have_for_developer_ = true; + for_developer_ = value; + } + + /** + * Clears the 'videoSyndicated' attribute so it is no longer + * set. + */ + void clear_video_syndicated() { + _have_video_syndicated_ = false; + client::ClearCppValueHelper(&video_syndicated_); + } + + + /** + * Gets the optional 'videoSyndicated' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_syndicated() const { return video_syndicated_; } + + /** + * Gets a modifiable pointer to the optional videoSyndicated' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoSyndicated() { + _have_video_syndicated_ = true; + return &video_syndicated_; + } + + + /** + * Sets the 'videoSyndicated' attribute. + * + * @param[in] value The videoSyndicated parameter lets you to restrict a + * search to only videos that can be played outside youtube.com. + */ + void set_video_syndicated(const string& value) { + _have_video_syndicated_ = true; + video_syndicated_ = value; + } + + + + /** + * Clears the 'channelType' attribute so it is no longer set. + */ + void clear_channel_type() { + _have_channel_type_ = false; + client::ClearCppValueHelper(&channel_type_); + } + + + /** + * Gets the optional 'channelType' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_channel_type() const { return channel_type_; } + + /** + * Gets a modifiable pointer to the optional channelType' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_channelType() { + _have_channel_type_ = true; + return &channel_type_; + } + + + /** + * Sets the 'channelType' attribute. + * + * @param[in] value The channelType parameter lets you restrict a search to + * a particular type of channel. + */ + void set_channel_type(const string& value) { + _have_channel_type_ = true; + channel_type_ = value; + } + + + + /** + * Clears the 'videoCaption' attribute so it is no longer set. + */ + void clear_video_caption() { + _have_video_caption_ = false; + client::ClearCppValueHelper(&video_caption_); + } + + + /** + * Gets the optional 'videoCaption' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_caption() const { return video_caption_; } + + /** + * Gets a modifiable pointer to the optional videoCaption' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoCaption() { + _have_video_caption_ = true; + return &video_caption_; + } + + + /** + * Sets the 'videoCaption' attribute. + * + * @param[in] value The videoCaption parameter indicates whether the API + * should filter video search results based on whether they have captions. + */ + void set_video_caption(const string& value) { + _have_video_caption_ = true; + video_caption_ = value; + } + + + + /** + * Clears the 'publishedAfter' attribute so it is no longer + * set. + */ + void clear_published_after() { + _have_published_after_ = false; + client::ClearCppValueHelper(&published_after_); + } + + + /** + * Gets the optional 'publishedAfter' attribute. + * + * If the value is not set then the default value will be returned. + */ + client::DateTime get_published_after() const { return published_after_; } + + /** + * Sets the 'publishedAfter' attribute. + * + * @param[in] value The publishedAfter parameter indicates that the API + * response should only contain resources created after the specified time. + * The value is an RFC 3339 formatted date-time value + * (1970-01-01T00:00:00Z). + */ + void set_published_after(client::DateTime value) { + _have_published_after_ = true; + published_after_ = value; + } + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + + + /** + * Clears the 'pageToken' attribute so it is no longer set. + */ + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); + } + + + /** + * Gets the optional 'pageToken' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_page_token() const { return page_token_; } + + /** + * Gets a modifiable pointer to the optional pageToken' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; + } + + + /** + * Sets the 'pageToken' attribute. + * + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. + */ + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; + } + + + + /** + * Clears the 'forContentOwner' attribute so it is no longer + * set. + */ + void clear_for_content_owner() { + _have_for_content_owner_ = false; + client::ClearCppValueHelper(&for_content_owner_); + } + + + /** + * Gets the optional 'forContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_for_content_owner() const { return for_content_owner_; } + + /** + * Sets the 'forContentOwner' attribute. + * + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The forContentOwner parameter restricts the search to only retrieve + * resources owned by the content owner specified by the + * onBehalfOfContentOwner parameter. The user must be authenticated using a + * CMS account linked to the specified content owner and + * onBehalfOfContentOwner must be provided. + */ + void set_for_content_owner(bool value) { + _have_for_content_owner_ = true; + for_content_owner_ = value; + } + + /** + * Clears the 'regionCode' attribute so it is no longer set. + */ + void clear_region_code() { + _have_region_code_ = false; + client::ClearCppValueHelper(®ion_code_); + } + + + /** + * Gets the optional 'regionCode' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_region_code() const { return region_code_; } + + /** + * Gets a modifiable pointer to the optional regionCode' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_regionCode() { + _have_region_code_ = true; + return ®ion_code_; + } + + + /** + * Sets the 'regionCode' attribute. + * + * @param[in] value The regionCode parameter instructs the API to return + * search results for the specified country. The parameter value is an ISO + * 3166-1 alpha-2 country code. + */ + void set_region_code(const string& value) { + _have_region_code_ = true; + region_code_ = value; + } + + + + /** + * Clears the 'location' attribute so it is no longer set. + */ + void clear_location() { + _have_location_ = false; + client::ClearCppValueHelper(&location_); + } + + + /** + * Gets the optional 'location' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_location() const { return location_; } + + /** + * Gets a modifiable pointer to the optional location' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_location() { + _have_location_ = true; + return &location_; + } + + + /** + * Sets the 'location' attribute. + * + * @param[in] value The location parameter restricts a search to videos that + * have a geographical location specified in their metadata. The value is a + * string that specifies geographic latitude/longitude coordinates e.g. + * (37.42307,-122.08427). + */ + void set_location(const string& value) { + _have_location_ = true; + location_ = value; + } + + + + /** + * Clears the 'locationRadius' attribute so it is no longer + * set. + */ + void clear_location_radius() { + _have_location_radius_ = false; + client::ClearCppValueHelper(&location_radius_); + } + + + /** + * Gets the optional 'locationRadius' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_location_radius() const { return location_radius_; } + + /** + * Gets a modifiable pointer to the optional locationRadius' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_locationRadius() { + _have_location_radius_ = true; + return &location_radius_; + } + + + /** + * Sets the 'locationRadius' attribute. + * + * @param[in] value The locationRadius, in conjunction with the location + * parameter, defines a geographic area. If the geographic coordinates + * associated with a video fall within that area, then the video may be + * included in search results. This parameter value must be a floating point + * number followed by a measurement unit. Valid measurement units are m, km, + * ft, and mi. For example, valid parameter values include 1500m, 5km, + * 10000ft, and 0.75mi. The API does not support locationRadius parameter + * values larger than 1000 kilometers. + */ + void set_location_radius(const string& value) { + _have_location_radius_ = true; + location_radius_ = value; + } + + + + /** + * Clears the 'videoType' attribute so it is no longer set. + */ + void clear_video_type() { + _have_video_type_ = false; + client::ClearCppValueHelper(&video_type_); + } + + + /** + * Gets the optional 'videoType' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_type() const { return video_type_; } + + /** + * Gets a modifiable pointer to the optional videoType' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoType() { + _have_video_type_ = true; + return &video_type_; + } + + + /** + * Sets the 'videoType' attribute. + * + * @param[in] value The videoType parameter lets you restrict a search to a + * particular type of videos. + */ + void set_video_type(const string& value) { + _have_video_type_ = true; + video_type_ = value; + } + + + + /** + * Clears the 'type' attribute so it is no longer set. + */ + void clear_type() { + _have_type_ = false; + client::ClearCppValueHelper(&type_); + } + + + /** + * Gets the optional 'type' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_type() const { return type_; } + + /** + * Gets a modifiable pointer to the optional type' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_type() { + _have_type_ = true; + return &type_; + } + + + /** + * Sets the 'type' attribute. + * + * @param[in] value The type parameter restricts a search query to only + * retrieve a particular type of resource. The value is a comma-separated + * list of resource types. + */ + void set_type(const string& value) { + _have_type_ = true; + type_ = value; + } + + + + /** + * Clears the 'topicId' attribute so it is no longer set. + */ + void clear_topic_id() { + _have_topic_id_ = false; + client::ClearCppValueHelper(&topic_id_); + } + + + /** + * Gets the optional 'topicId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_topic_id() const { return topic_id_; } + + /** + * Gets a modifiable pointer to the optional topicId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_topicId() { + _have_topic_id_ = true; + return &topic_id_; + } + + + /** + * Sets the 'topicId' attribute. + * + * @param[in] value The topicId parameter indicates that the API response + * should only contain resources associated with the specified topic. The + * value identifies a Freebase topic ID. + */ + void set_topic_id(const string& value) { + _have_topic_id_ = true; + topic_id_ = value; + } + + + + /** + * Clears the 'publishedBefore' attribute so it is no longer + * set. + */ + void clear_published_before() { + _have_published_before_ = false; + client::ClearCppValueHelper(&published_before_); + } + + + /** + * Gets the optional 'publishedBefore' attribute. + * + * If the value is not set then the default value will be returned. + */ + client::DateTime get_published_before() const { return published_before_; } + + /** + * Sets the 'publishedBefore' attribute. + * + * @param[in] value The publishedBefore parameter indicates that the API + * response should only contain resources created before the specified time. + * The value is an RFC 3339 formatted date-time value + * (1970-01-01T00:00:00Z). + */ + void set_published_before(client::DateTime value) { + _have_published_before_ = true; + published_before_ = value; + } + + /** + * Clears the 'videoDimension' attribute so it is no longer + * set. + */ + void clear_video_dimension() { + _have_video_dimension_ = false; + client::ClearCppValueHelper(&video_dimension_); + } + + + /** + * Gets the optional 'videoDimension' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_dimension() const { return video_dimension_; } + + /** + * Gets a modifiable pointer to the optional videoDimension' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoDimension() { + _have_video_dimension_ = true; + return &video_dimension_; + } + + + /** + * Sets the 'videoDimension' attribute. + * + * @param[in] value The videoDimension parameter lets you restrict a search + * to only retrieve 2D or 3D videos. + */ + void set_video_dimension(const string& value) { + _have_video_dimension_ = true; + video_dimension_ = value; + } + + + + /** + * Clears the 'videoLicense' attribute so it is no longer set. + */ + void clear_video_license() { _have_video_license_ = false; client::ClearCppValueHelper(&video_license_); } + + + /** + * Gets the optional 'videoLicense' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_license() const { return video_license_; } + + /** + * Gets a modifiable pointer to the optional videoLicense' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoLicense() { + _have_video_license_ = true; + return &video_license_; + } + + + /** + * Sets the 'videoLicense' attribute. + * + * @param[in] value The videoLicense parameter filters search results to + * only include videos with a particular license. YouTube lets video + * uploaders choose to attach either the Creative Commons license or the + * standard YouTube license to each of their videos. + */ + void set_video_license(const string& value) { + _have_video_license_ = true; + video_license_ = value; + } + + + + /** + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } + + + /** + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. + */ + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; + } + + /** + * Clears the 'relatedToVideoId' attribute so it is no longer + * set. + */ + void clear_related_to_video_id() { + _have_related_to_video_id_ = false; + client::ClearCppValueHelper(&related_to_video_id_); + } + + + /** + * Gets the optional 'relatedToVideoId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_related_to_video_id() const { return related_to_video_id_; } + + /** + * Gets a modifiable pointer to the optional relatedToVideoId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_relatedToVideoId() { + _have_related_to_video_id_ = true; + return &related_to_video_id_; + } + + + /** + * Sets the 'relatedToVideoId' attribute. + * + * @param[in] value The relatedToVideoId parameter retrieves a list of + * videos that are related to the video that the parameter value identifies. + * The parameter value must be set to a YouTube video ID and, if you are + * using this parameter, the type parameter must be set to video. + */ + void set_related_to_video_id(const string& value) { + _have_related_to_video_id_ = true; + related_to_video_id_ = value; + } + + + + /** + * Clears the 'videoDefinition' attribute so it is no longer + * set. + */ + void clear_video_definition() { + _have_video_definition_ = false; + client::ClearCppValueHelper(&video_definition_); + } + + + /** + * Gets the optional 'videoDefinition' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_definition() const { return video_definition_; } + + /** + * Gets a modifiable pointer to the optional videoDefinition' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoDefinition() { + _have_video_definition_ = true; + return &video_definition_; + } + + + /** + * Sets the 'videoDefinition' attribute. + * + * @param[in] value The videoDefinition parameter lets you restrict a search + * to only include either high definition (HD) or standard definition (SD) + * videos. HD videos are available for playback in at least 720p, though + * higher resolutions, like 1080p, might also be available. + */ + void set_video_definition(const string& value) { + _have_video_definition_ = true; + video_definition_ = value; + } + + + + /** + * Clears the 'videoDuration' attribute so it is no longer set. + */ + void clear_video_duration() { + _have_video_duration_ = false; + client::ClearCppValueHelper(&video_duration_); + } + + + /** + * Gets the optional 'videoDuration' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_duration() const { return video_duration_; } + + /** + * Gets a modifiable pointer to the optional videoDuration' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoDuration() { + _have_video_duration_ = true; + return &video_duration_; + } + + + /** + * Sets the 'videoDuration' attribute. + * + * @param[in] value The videoDuration parameter filters video search results + * based on their duration. + */ + void set_video_duration(const string& value) { + _have_video_duration_ = true; + video_duration_ = value; + } + + + + /** + * Clears the 'relevanceLanguage' attribute so it is no longer + * set. + */ + void clear_relevance_language() { + _have_relevance_language_ = false; + client::ClearCppValueHelper(&relevance_language_); + } + + + /** + * Gets the optional 'relevanceLanguage' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_relevance_language() const { return relevance_language_; } + + /** + * Gets a modifiable pointer to the optional relevanceLanguage' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_relevanceLanguage() { + _have_relevance_language_ = true; + return &relevance_language_; + } + + + /** + * Sets the 'relevanceLanguage' attribute. + * + * @param[in] value The relevanceLanguage parameter instructs the API to + * return search results that are most relevant to the specified language. + * The parameter value is typically an ISO 639-1 two-letter language code. + * However, you should use the values zh-Hans for simplified Chinese and zh- + * Hant for traditional Chinese. Please note that results in other languages + * will still be returned if they are highly relevant to the search query + * term. + */ + void set_relevance_language(const string& value) { + _have_relevance_language_ = true; + relevance_language_ = value; + } + + + + /** + * Clears the 'forMine' attribute so it is no longer set. + */ + void clear_for_mine() { + _have_for_mine_ = false; + client::ClearCppValueHelper(&for_mine_); + } + + + /** + * Gets the optional 'forMine' attribute. + * + * If the value is not set then the default value will be returned. + */ + bool get_for_mine() const { return for_mine_; } + + /** + * Sets the 'forMine' attribute. + * + * @param[in] value The forMine parameter restricts the search to only + * retrieve videos owned by the authenticated user. If you set this + * parameter to true, then the type parameter's value must also be set to + * video. + */ + void set_for_mine(bool value) { + _have_for_mine_ = true; + for_mine_ = value; + } + + /** + * Clears the 'q' attribute so it is no longer set. + */ + void clear_q() { + _have_q_ = false; + client::ClearCppValueHelper(&q_); + } + + + /** + * Gets the optional 'q' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_q() const { return q_; } + + /** + * Gets a modifiable pointer to the optional q' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_q() { + _have_q_ = true; + return &q_; + } + + + /** + * Sets the 'q' attribute. + * + * @param[in] value The q parameter specifies the query term to search for. + */ + void set_q(const string& value) { + _have_q_ = true; + q_ = value; + } + + + + /** + * Clears the 'safeSearch' attribute so it is no longer set. + */ + void clear_safe_search() { + _have_safe_search_ = false; + client::ClearCppValueHelper(&safe_search_); + } + + + /** + * Gets the optional 'safeSearch' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_safe_search() const { return safe_search_; } + + /** + * Gets a modifiable pointer to the optional safeSearch' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_safeSearch() { + _have_safe_search_ = true; + return &safe_search_; + } + + + /** + * Sets the 'safeSearch' attribute. + * + * @param[in] value The safeSearch parameter indicates whether the search + * results should include restricted content as well as standard content. + */ + void set_safe_search(const string& value) { + _have_safe_search_ = true; + safe_search_ = value; + } + + + + /** + * Clears the 'videoEmbeddable' attribute so it is no longer + * set. + */ + void clear_video_embeddable() { + _have_video_embeddable_ = false; + client::ClearCppValueHelper(&video_embeddable_); + } + + + /** + * Gets the optional 'videoEmbeddable' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_embeddable() const { return video_embeddable_; } + + /** + * Gets a modifiable pointer to the optional videoEmbeddable' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoEmbeddable() { + _have_video_embeddable_ = true; + return &video_embeddable_; + } + + + /** + * Sets the 'videoEmbeddable' attribute. + * + * @param[in] value The videoEmbeddable parameter lets you to restrict a + * search to only videos that can be embedded into a webpage. + */ + void set_video_embeddable(const string& value) { + _have_video_embeddable_ = true; + video_embeddable_ = value; + } + + + + /** + * Clears the 'videoCategoryId' attribute so it is no longer + * set. + */ + void clear_video_category_id() { + _have_video_category_id_ = false; + client::ClearCppValueHelper(&video_category_id_); + } + + + /** + * Gets the optional 'videoCategoryId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_category_id() const { return video_category_id_; } + + /** + * Gets a modifiable pointer to the optional videoCategoryId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoCategoryId() { + _have_video_category_id_ = true; + return &video_category_id_; + } + + + /** + * Sets the 'videoCategoryId' attribute. + * + * @param[in] value The videoCategoryId parameter filters video search + * results based on their category. + */ + void set_video_category_id(const string& value) { + _have_video_category_id_ = true; + video_category_id_ = value; + } + + + + /** + * Clears the 'order' attribute so it is no longer set. + */ + void clear_order() { + _have_order_ = false; + client::ClearCppValueHelper(&order_); + } + + + /** + * Gets the optional 'order' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_order() const { return order_; } + + /** + * Gets a modifiable pointer to the optional order' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_order() { + _have_order_ = true; + return &order_; + } + + + /** + * Sets the 'order' attribute. + * + * @param[in] value The order parameter specifies the method that will be + * used to order resources in the API response. + */ + void set_order(const string& value) { + _have_order_ = true; + order_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + SearchListResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string event_type_; + string channel_id_; + bool for_developer_; + string video_syndicated_; + string channel_type_; + string video_caption_; + client::DateTime published_after_; + string on_behalf_of_content_owner_; + string page_token_; + bool for_content_owner_; + string region_code_; + string location_; + string location_radius_; + string video_type_; + string type_; + string topic_id_; + client::DateTime published_before_; + string video_dimension_; + string video_license_; + uint32 max_results_; + string related_to_video_id_; + string video_definition_; + string video_duration_; + string relevance_language_; + bool for_mine_; + string q_; + string safe_search_; + string video_embeddable_; + string video_category_id_; + string order_; + bool _have_event_type_ : 1; + bool _have_channel_id_ : 1; + bool _have_for_developer_ : 1; + bool _have_video_syndicated_ : 1; + bool _have_channel_type_ : 1; + bool _have_video_caption_ : 1; + bool _have_published_after_ : 1; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_page_token_ : 1; + bool _have_for_content_owner_ : 1; + bool _have_region_code_ : 1; + bool _have_location_ : 1; + bool _have_location_radius_ : 1; + bool _have_video_type_ : 1; + bool _have_type_ : 1; + bool _have_topic_id_ : 1; + bool _have_published_before_ : 1; + bool _have_video_dimension_ : 1; + bool _have_video_license_ : 1; + bool _have_max_results_ : 1; + bool _have_related_to_video_id_ : 1; + bool _have_video_definition_ : 1; + bool _have_video_duration_ : 1; + bool _have_relevance_language_ : 1; + bool _have_for_mine_ : 1; + bool _have_q_ : 1; + bool _have_safe_search_ : 1; + bool _have_video_embeddable_ : 1; + bool _have_video_category_id_ : 1; + bool _have_order_ : 1; + DISALLOW_COPY_AND_ASSIGN(SearchResource_ListMethod); +}; + +typedef client::ServiceRequestPager< + SearchResource_ListMethod, + SearchListResponse> + SearchResource_ListMethodPager; + + + +/** + * Implements the delete method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class SubscriptionsResource_DeleteMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies the YouTube subscription ID for + * the resource that is being deleted. In a subscription resource, the id + * property specifies the YouTube subscription ID. + */ + SubscriptionsResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + + /** + * Standard destructor. + */ + virtual ~SubscriptionsResource_DeleteMethod(); + + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + private: + string id_; + DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_DeleteMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class SubscriptionsResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet and + * contentDetails. + * @param[in] _content_ The data object to insert. + */ + SubscriptionsResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Subscription& _content_); + + /** + * Standard destructor. + */ + virtual ~SubscriptionsResource_InsertMethod(); + + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + Subscription* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; string _content_; + DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_InsertMethod); +}; + +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + * https://www.googleapis.com/auth/youtubepartner + */ +class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more subscription resource properties that the API response will + * include. The part names that you can include in the parameter value are id, + * snippet, and contentDetails. + * + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a + * subscription resource, the snippet property contains other properties, such + * as a display title for the subscription. If you set part=snippet, the API + * response will also contain all of those nested properties. + */ + SubscriptionsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + + /** + * Standard destructor. + */ + virtual ~SubscriptionsResource_ListMethod(); + + /** - * @deprecated - * @see clear_video_license + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_videoLicense() { - clear_video_license(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'videoLicense' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_license() const { return video_license_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional videoLicense' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoLicense() { - _have_video_license_ = true; - return &video_license_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'videoLicense' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The videoLicense parameter filters search results to - * only include videos with a particular license. YouTube lets video - * uploaders choose to attach either the Creative Commons license or the - * standard YouTube license to each of their videos. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_video_license(const string& value) { - _have_video_license_ = true; - video_license_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_maxResults() { - clear_max_results(); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } + /** - * Gets the optional 'maxResults' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - uint32 get_max_results() const { return max_results_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Sets the 'maxResults' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. + * @return The value can be set by dereferencing the pointer. */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } + /** - * Clears the 'relatedToVideoId' attribute so it is no longer - * set. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. + * + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void clear_related_to_video_id() { - _have_related_to_video_id_ = false; - client::ClearCppValueHelper(&related_to_video_id_); + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } + + + /** - * @deprecated - * @see clear_related_to_video_id + * Clears the 'channelId' attribute so it is no longer set. */ - void clear_relatedToVideoId() { - clear_related_to_video_id(); + void clear_channel_id() { + _have_channel_id_ = false; + client::ClearCppValueHelper(&channel_id_); } + /** - * Gets the optional 'relatedToVideoId' attribute. + * Gets the optional 'channelId' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_related_to_video_id() const { return related_to_video_id_; } + const string& get_channel_id() const { return channel_id_; } /** - * Gets a modifiable pointer to the optional relatedToVideoId' + * Gets a modifiable pointer to the optional channelId' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_relatedToVideoId() { - _have_related_to_video_id_ = true; - return &related_to_video_id_; + string* mutable_channelId() { + _have_channel_id_ = true; + return &channel_id_; } /** - * Sets the 'relatedToVideoId' attribute. + * Sets the 'channelId' attribute. * - * @param[in] value The relatedToVideoId parameter retrieves a list of - * videos that are related to the video that the parameter value identifies. - * The parameter value must be set to a YouTube video ID and, if you are - * using this parameter, the type parameter must be set to video. + * @param[in] value The channelId parameter specifies a YouTube channel ID. + * The API will only return that channel's subscriptions. */ - void set_related_to_video_id(const string& value) { - _have_related_to_video_id_ = true; - related_to_video_id_ = value; + void set_channel_id(const string& value) { + _have_channel_id_ = true; + channel_id_ = value; } /** - * Clears the 'videoDefinition' attribute so it is no longer - * set. - */ - void clear_video_definition() { - _have_video_definition_ = false; - client::ClearCppValueHelper(&video_definition_); - } - /** - * @deprecated - * @see clear_video_definition + * Clears the 'mine' attribute so it is no longer set. */ - void clear_videoDefinition() { - clear_video_definition(); + void clear_mine() { + _have_mine_ = false; + client::ClearCppValueHelper(&mine_); } + /** - * Gets the optional 'videoDefinition' attribute. + * Gets the optional 'mine' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_definition() const { return video_definition_; } + bool get_mine() const { return mine_; } /** - * Gets a modifiable pointer to the optional videoDefinition' - * attribute. + * Sets the 'mine' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value Set this parameter's value to true to retrieve a feed of + * the authenticated user's subscriptions. */ - string* mutable_videoDefinition() { - _have_video_definition_ = true; - return &video_definition_; + void set_mine(bool value) { + _have_mine_ = true; + mine_ = value; } - /** - * Sets the 'videoDefinition' attribute. - * - * @param[in] value The videoDefinition parameter lets you restrict a search - * to only include either high definition (HD) or standard definition (SD) - * videos. HD videos are available for playback in at least 720p, though - * higher resolutions, like 1080p, might also be available. + * Clears the 'maxResults' attribute so it is no longer set. */ - void set_video_definition(const string& value) { - _have_video_definition_ = true; - video_definition_ = value; + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); } + /** + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. + */ + uint32 get_max_results() const { return max_results_; } /** - * Clears the 'videoDuration' attribute so it is no longer set. + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. */ - void clear_video_duration() { - _have_video_duration_ = false; - client::ClearCppValueHelper(&video_duration_); + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; } + /** - * @deprecated - * @see clear_video_duration + * Clears the 'forChannelId' attribute so it is no longer set. */ - void clear_videoDuration() { - clear_video_duration(); + void clear_for_channel_id() { + _have_for_channel_id_ = false; + client::ClearCppValueHelper(&for_channel_id_); } + /** - * Gets the optional 'videoDuration' attribute. + * Gets the optional 'forChannelId' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_duration() const { return video_duration_; } + const string& get_for_channel_id() const { return for_channel_id_; } /** - * Gets a modifiable pointer to the optional videoDuration' + * Gets a modifiable pointer to the optional forChannelId' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoDuration() { - _have_video_duration_ = true; - return &video_duration_; + string* mutable_forChannelId() { + _have_for_channel_id_ = true; + return &for_channel_id_; } /** - * Sets the 'videoDuration' attribute. + * Sets the 'forChannelId' attribute. * - * @param[in] value The videoDuration parameter filters video search results - * based on their duration. + * @param[in] value The forChannelId parameter specifies a comma-separated + * list of channel IDs. The API response will then only contain + * subscriptions matching those channels. */ - void set_video_duration(const string& value) { - _have_video_duration_ = true; - video_duration_ = value; + void set_for_channel_id(const string& value) { + _have_for_channel_id_ = true; + for_channel_id_ = value; } /** - * Clears the 'relevanceLanguage' attribute so it is no longer - * set. - */ - void clear_relevance_language() { - _have_relevance_language_ = false; - client::ClearCppValueHelper(&relevance_language_); - } - /** - * @deprecated - * @see clear_relevance_language + * Clears the 'pageToken' attribute so it is no longer set. */ - void clear_relevanceLanguage() { - clear_relevance_language(); + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); } + /** - * Gets the optional 'relevanceLanguage' attribute. + * Gets the optional 'pageToken' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_relevance_language() const { return relevance_language_; } + const string& get_page_token() const { return page_token_; } /** - * Gets a modifiable pointer to the optional relevanceLanguage' + * Gets a modifiable pointer to the optional pageToken' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_relevanceLanguage() { - _have_relevance_language_ = true; - return &relevance_language_; + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; } /** - * Sets the 'relevanceLanguage' attribute. + * Sets the 'pageToken' attribute. * - * @param[in] value The relevanceLanguage parameter instructs the API to - * return search results that are most relevant to the specified language. - * The parameter value is typically an ISO 639-1 two-letter language code. - * However, you should use the values zh-Hans for simplified Chinese and zh- - * Hant for traditional Chinese. Please note that results in other languages - * will still be returned if they are highly relevant to the search query - * term. + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. */ - void set_relevance_language(const string& value) { - _have_relevance_language_ = true; - relevance_language_ = value; + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; } /** - * Clears the 'forMine' attribute so it is no longer set. - */ - void clear_for_mine() { - _have_for_mine_ = false; - client::ClearCppValueHelper(&for_mine_); - } - /** - * @deprecated - * @see clear_for_mine + * Clears the 'mySubscribers' attribute so it is no longer set. */ - void clear_forMine() { - clear_for_mine(); + void clear_my_subscribers() { + _have_my_subscribers_ = false; + client::ClearCppValueHelper(&my_subscribers_); } + /** - * Gets the optional 'forMine' attribute. + * Gets the optional 'mySubscribers' attribute. * * If the value is not set then the default value will be returned. */ - bool get_for_mine() const { return for_mine_; } + bool get_my_subscribers() const { return my_subscribers_; } /** - * Sets the 'forMine' attribute. + * Sets the 'mySubscribers' attribute. * - * @param[in] value The forMine parameter restricts the search to only - * retrieve videos owned by the authenticated user. If you set this - * parameter to true, then the type parameter's value must also be set to - * video. + * @param[in] value Set this parameter's value to true to retrieve a feed of + * the subscribers of the authenticated user. */ - void set_for_mine(bool value) { - _have_for_mine_ = true; - for_mine_ = value; + void set_my_subscribers(bool value) { + _have_my_subscribers_ = true; + my_subscribers_ = value; } /** - * Clears the 'q' attribute so it is no longer set. + * Clears the 'order' attribute so it is no longer set. */ - void clear_q() { - _have_q_ = false; - client::ClearCppValueHelper(&q_); + void clear_order() { + _have_order_ = false; + client::ClearCppValueHelper(&order_); } /** - * Gets the optional 'q' attribute. + * Gets the optional 'order' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_q() const { return q_; } + const string& get_order() const { return order_; } /** - * Gets a modifiable pointer to the optional q' attribute. + * Gets a modifiable pointer to the optional order' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_q() { - _have_q_ = true; - return &q_; + string* mutable_order() { + _have_order_ = true; + return &order_; } /** - * Sets the 'q' attribute. + * Sets the 'order' attribute. * - * @param[in] value The q parameter specifies the query term to search for. + * @param[in] value The order parameter specifies the method that will be + * used to sort resources in the API response. */ - void set_q(const string& value) { - _have_q_ = true; - q_ = value; + void set_order(const string& value) { + _have_order_ = true; + order_ = value; } - - - /** - * Clears the 'safeSearch' attribute so it is no longer set. - */ - void clear_safe_search() { - _have_safe_search_ = false; - client::ClearCppValueHelper(&safe_search_); - } + + /** - * @deprecated - * @see clear_safe_search + * Clears the 'id' attribute so it is no longer set. */ - void clear_safeSearch() { - clear_safe_search(); + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); } + /** - * Gets the optional 'safeSearch' attribute. + * Gets the optional 'id' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_safe_search() const { return safe_search_; } + const string& get_id() const { return id_; } /** - * Gets a modifiable pointer to the optional safeSearch' - * attribute. + * Gets a modifiable pointer to the optional id' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_safeSearch() { - _have_safe_search_ = true; - return &safe_search_; + string* mutable_id() { + _have_id_ = true; + return &id_; } /** - * Sets the 'safeSearch' attribute. + * Sets the 'id' attribute. * - * @param[in] value The safeSearch parameter indicates whether the search - * results should include restricted content as well as standard content. + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube subscription ID(s) for the resource(s) that are being retrieved. + * In a subscription resource, the id property specifies the YouTube + * subscription ID. */ - void set_safe_search(const string& value) { - _have_safe_search_ = true; - safe_search_ = value; + void set_id(const string& value) { + _have_id_ = true; + id_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + SubscriptionListResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + + private: + string part_; + string on_behalf_of_content_owner_; + string on_behalf_of_content_owner_channel_; + string channel_id_; + bool mine_; + uint32 max_results_; + string for_channel_id_; + string page_token_; + bool my_subscribers_; + string order_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; + bool _have_on_behalf_of_content_owner_channel_ : 1; + bool _have_channel_id_ : 1; + bool _have_mine_ : 1; + bool _have_max_results_ : 1; + bool _have_for_channel_id_ : 1; + bool _have_page_token_ : 1; + bool _have_my_subscribers_ : 1; + bool _have_order_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_ListMethod); +}; + +typedef client::ServiceRequestPager< + SubscriptionsResource_ListMethod, + SubscriptionListResponse> + SubscriptionsResource_ListMethodPager; + + + +/** + * Implements the set method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.upload + * https://www.googleapis.com/auth/youtubepartner + */ +class ThumbnailsResource_SetMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] video_id The videoId parameter specifies a YouTube video ID for + * which the custom video thumbnail is being provided. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to set. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + ThumbnailsResource_SetMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& video_id, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); + + /** + * Standard destructor. + */ + virtual ~ThumbnailsResource_SetMethod(); /** - * Clears the 'videoEmbeddable' attribute so it is no longer - * set. - */ - void clear_video_embeddable() { - _have_video_embeddable_ = false; - client::ClearCppValueHelper(&video_embeddable_); - } - /** - * @deprecated - * @see clear_video_embeddable + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_videoEmbeddable() { - clear_video_embeddable(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'videoEmbeddable' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_video_embeddable() const { return video_embeddable_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional videoEmbeddable' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_videoEmbeddable() { - _have_video_embeddable_ = true; - return &video_embeddable_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'videoEmbeddable' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The videoEmbeddable parameter lets you to restrict a - * search to only videos that can be embedded into a webpage. + * @param[in] value The onBehalfOfContentOwner parameter indicates that the + * authenticated user is acting on behalf of the content owner specified in + * the parameter value. This parameter is intended for YouTube content + * partners that own and manage many different YouTube channels. It allows + * content owners to authenticate once and get access to all their video and + * channel data, without having to provide authentication credentials for + * each individual channel. The actual CMS account that the user + * authenticates with needs to be linked to the specified YouTube content + * owner. */ - void set_video_embeddable(const string& value) { - _have_video_embeddable_ = true; - video_embeddable_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Clears the 'videoCategoryId' attribute so it is no longer - * set. - */ - void clear_video_category_id() { - _have_video_category_id_ = false; - client::ClearCppValueHelper(&video_category_id_); - } - /** - * @deprecated - * @see clear_video_category_id - */ - void clear_videoCategoryId() { - clear_video_category_id(); - } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + ThumbnailSetResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } - /** - * Gets the optional 'videoCategoryId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_video_category_id() const { return video_category_id_; } - /** - * Gets a modifiable pointer to the optional videoCategoryId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_videoCategoryId() { - _have_video_category_id_ = true; - return &video_category_id_; - } + /** + * Returns MediaUploader for uploading the content. + */ + + /** + * Returns the specification for media upload using the simple protocol. + */ + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; + /** + * Returns the specification for media upload using the resumable protocol. + */ + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; + + private: + string video_id_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(ThumbnailsResource_SetMethod); +}; + - /** - * Sets the 'videoCategoryId' attribute. - * - * @param[in] value The videoCategoryId parameter filters video search - * results based on their category. - */ - void set_video_category_id(const string& value) { - _have_video_category_id_ = true; - video_category_id_ = value; - } +/** + * Implements the list method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly + */ +class VideoAbuseReportReasonsResource_ListMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter specifies the videoCategory resource + * parts that the API response will include. Supported values are id and + * snippet. + */ + VideoAbuseReportReasonsResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + /** + * Standard destructor. + */ + virtual ~VideoAbuseReportReasonsResource_ListMethod(); /** - * Clears the 'order' attribute so it is no longer set. + * Clears the 'hl' attribute so it is no longer set. */ - void clear_order() { - _have_order_ = false; - client::ClearCppValueHelper(&order_); + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); } /** - * Gets the optional 'order' attribute. + * Gets the optional 'hl' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_order() const { return order_; } + const string& get_hl() const { return hl_; } /** - * Gets a modifiable pointer to the optional order' attribute. + * Gets a modifiable pointer to the optional hl' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_order() { - _have_order_ = true; - return &order_; + string* mutable_hl() { + _have_hl_ = true; + return &hl_; } /** - * Sets the 'order' attribute. + * Sets the 'hl' attribute. * - * @param[in] value The order parameter specifies the method that will be - * used to order resources in the API response. + * @param[in] value The hl parameter specifies the language that should be + * used for text values in the API response. */ - void set_order(const string& value) { - _have_order_ = true; - order_ = value; + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; } /** @@ -8926,82 +12078,21 @@ class SearchResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - SearchListResponse* data) { + VideoAbuseReportReasonListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; - string event_type_; - string channel_id_; - string video_syndicated_; - string channel_type_; - string video_caption_; - client::DateTime published_after_; - string on_behalf_of_content_owner_; - string page_token_; - bool for_content_owner_; - string region_code_; - string location_; - string location_radius_; - string video_type_; - string type_; - string topic_id_; - client::DateTime published_before_; - string video_dimension_; - string video_license_; - uint32 max_results_; - string related_to_video_id_; - string video_definition_; - string video_duration_; - string relevance_language_; - bool for_mine_; - string q_; - string safe_search_; - string video_embeddable_; - string video_category_id_; - string order_; - bool _have_event_type_ : 1; - bool _have_channel_id_ : 1; - bool _have_video_syndicated_ : 1; - bool _have_channel_type_ : 1; - bool _have_video_caption_ : 1; - bool _have_published_after_ : 1; - bool _have_on_behalf_of_content_owner_ : 1; - bool _have_page_token_ : 1; - bool _have_for_content_owner_ : 1; - bool _have_region_code_ : 1; - bool _have_location_ : 1; - bool _have_location_radius_ : 1; - bool _have_video_type_ : 1; - bool _have_type_ : 1; - bool _have_topic_id_ : 1; - bool _have_published_before_ : 1; - bool _have_video_dimension_ : 1; - bool _have_video_license_ : 1; - bool _have_max_results_ : 1; - bool _have_related_to_video_id_ : 1; - bool _have_video_definition_ : 1; - bool _have_video_duration_ : 1; - bool _have_relevance_language_ : 1; - bool _have_for_mine_ : 1; - bool _have_q_ : 1; - bool _have_safe_search_ : 1; - bool _have_video_embeddable_ : 1; - bool _have_video_category_id_ : 1; - bool _have_order_ : 1; - DISALLOW_COPY_AND_ASSIGN(SearchResource_ListMethod); + string hl_; + bool _have_hl_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideoAbuseReportReasonsResource_ListMethod); }; -typedef client::ServiceRequestPager< - SearchResource_ListMethod, - SearchListResponse> - SearchResource_ListMethodPager; - /** - * Implements the delete method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -9012,107 +12103,151 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class SubscriptionsResource_DeleteMethod : public YouTubeServiceBaseRequest { +class VideoCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube subscription ID for - * the resource that is being deleted. In a subscription resource, the id - * property specifies the YouTube subscription ID. - * + * @param[in] part The part parameter specifies the videoCategory resource + * parts that the API response will include. Supported values are id and + * snippet. */ - SubscriptionsResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + VideoCategoriesResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~SubscriptionsResource_DeleteMethod(); + virtual ~VideoCategoriesResource_ListMethod(); - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + /** + * Clears the 'regionCode' attribute so it is no longer set. + */ + void clear_region_code() { + _have_region_code_ = false; + client::ClearCppValueHelper(®ion_code_); + } + + + /** + * Gets the optional 'regionCode' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_region_code() const { return region_code_; } + + /** + * Gets a modifiable pointer to the optional regionCode' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_regionCode() { + _have_region_code_ = true; + return ®ion_code_; + } + + + /** + * Sets the 'regionCode' attribute. + * + * @param[in] value The regionCode parameter instructs the API to return the + * list of video categories available in the specified country. The + * parameter value is an ISO 3166-1 alpha-2 country code. + */ + void set_region_code(const string& value) { + _have_region_code_ = true; + region_code_ = value; + } + + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of + * video category IDs for the resources that you are retrieving. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); - private: - string id_; - DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_DeleteMethod); -}; + /** + * Clears the 'hl' attribute so it is no longer set. + */ + void clear_hl() { + _have_hl_ = false; + client::ClearCppValueHelper(&hl_); + } -/** - * Implements the insert method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class SubscriptionsResource_InsertMethod : public YouTubeServiceBaseRequest { - public: + /** + * Gets the optional 'hl' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_hl() const { return hl_; } - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet and - * contentDetails. - * - * @param[in] _content_ The data object to insert. - * - */ - SubscriptionsResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Subscription& _content_ - ); + /** + * Gets a modifiable pointer to the optional hl' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_hl() { + _have_hl_ = true; + return &hl_; + } - /** - * Standard destructor. - */ - virtual ~SubscriptionsResource_InsertMethod(); + /** + * Sets the 'hl' attribute. + * + * @param[in] value The hl parameter specifies the language that should be + * used for text values in the API response. + */ + void set_hl(const string& value) { + _have_hl_ = true; + hl_ = value; + } /** * Appends variable value to the target string. @@ -9147,17 +12282,25 @@ class SubscriptionsResource_InsertMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - Subscription* data) { + VideoCategoryListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: - string part_; string _content_; - DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_InsertMethod); + string part_; + string region_code_; + string id_; + string hl_; + bool _have_region_code_ : 1; + bool _have_id_ : 1; + bool _have_hl_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideoCategoriesResource_ListMethod); }; + + /** - * Implements the list method. + * Implements the delete method. * * @ingroup ServiceMethod * @@ -9168,40 +12311,29 @@ class SubscriptionsResource_InsertMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { +class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more subscription resource properties that the API response will - * include. The part names that you can include in the parameter value are id, - * snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a - * subscription resource, the snippet property contains other properties, such - * as a display title for the subscription. If you set part=snippet, the API - * response will also contain all of those nested properties. - * + * @param[in] id The id parameter specifies the YouTube video ID for the + * resource that is being deleted. In a video resource, the id property + * specifies the video's ID. */ - SubscriptionsResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + VideosResource_DeleteMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); /** * Standard destructor. */ - virtual ~SubscriptionsResource_ListMethod(); + virtual ~VideosResource_DeleteMethod(); /** @@ -9212,13 +12344,7 @@ class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -9252,7 +12378,7 @@ class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { * many different YouTube channels. It allows content owners to authenticate * once and get access to all their video and channel data, without having * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the + * actual CMS account that the user authenticates with must be linked to the * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { @@ -9260,388 +12386,444 @@ class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); - - /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } - - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } - - - - /** - * Clears the 'channelId' attribute so it is no longer set. - */ - void clear_channel_id() { - _have_channel_id_ = false; - client::ClearCppValueHelper(&channel_id_); - } - /** - * @deprecated - * @see clear_channel_id - */ - void clear_channelId() { - clear_channel_id(); - } - - /** - * Gets the optional 'channelId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_channel_id() const { return channel_id_; } - - /** - * Gets a modifiable pointer to the optional channelId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_channelId() { - _have_channel_id_ = true; - return &channel_id_; - } + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Sets the 'channelId' attribute. - * - * @param[in] value The channelId parameter specifies a YouTube channel ID. - * The API will only return that channel's subscriptions. - */ - void set_channel_id(const string& value) { - _have_channel_id_ = true; - channel_id_ = value; - } + private: + string id_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideosResource_DeleteMethod); +}; + +/** + * Implements the getRating method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtubepartner + */ +class VideosResource_GetRatingMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] id The id parameter specifies a comma-separated list of the + * YouTube video ID(s) for the resource(s) for which you are retrieving rating + * data. In a video resource, the id property specifies the video's ID. + */ + VideosResource_GetRatingMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id); + /** + * Standard destructor. + */ + virtual ~VideosResource_GetRatingMethod(); /** - * Clears the 'mine' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_mine() { - _have_mine_ = false; - client::ClearCppValueHelper(&mine_); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } /** - * Gets the optional 'mine' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - bool get_mine() const { return mine_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Sets the 'mine' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * - * @param[in] value Set this parameter's value to true to retrieve a feed of - * the authenticated user's subscriptions. + * @return The value can be set by dereferencing the pointer. */ - void set_mine(bool value) { - _have_mine_ = true; - mine_ = value; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } - /** - * Clears the 'maxResults' attribute so it is no longer set. - */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } - /** - * @deprecated - * @see clear_max_results - */ - void clear_maxResults() { - clear_max_results(); - } /** - * Gets the optional 'maxResults' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * If the value is not set then the default value will be returned. - */ - uint32 get_max_results() const { return max_results_; } - - /** - * Sets the 'maxResults' attribute. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. - */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; - } - - /** - * Clears the 'forChannelId' attribute so it is no longer set. - */ - void clear_for_channel_id() { - _have_for_channel_id_ = false; - client::ClearCppValueHelper(&for_channel_id_); - } - /** - * @deprecated - * @see clear_for_channel_id + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void clear_forChannelId() { - clear_for_channel_id(); + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } - /** - * Gets the optional 'forChannelId' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_for_channel_id() const { return for_channel_id_; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); - /** - * Gets a modifiable pointer to the optional forChannelId' - * attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_forChannelId() { - _have_for_channel_id_ = true; - return &for_channel_id_; - } + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Sets the 'forChannelId' attribute. - * - * @param[in] value The forChannelId parameter specifies a comma-separated - * list of channel IDs. The API response will then only contain - * subscriptions matching those channels. - */ - void set_for_channel_id(const string& value) { - _have_for_channel_id_ = true; - for_channel_id_ = value; - } + /** + * Executes the method and parses the response into a data object on success. + * + * @param[out] data Loads from the response payload JSON data on success. + * + * @return Success if an HTTP 2xx response was received. Otherwise the + * status indicates the reason for failure. Finer detail may be + * available from the underlying http_request to distinguish the + * transport_status from the overal HTTP request status. + */ + util::Status ExecuteAndParseResponse( + VideoGetRatingResponse* data) { + return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); + } + private: + string id_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideosResource_GetRatingMethod); +}; + +/** + * Implements the insert method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.upload + * https://www.googleapis.com/auth/youtubepartner + */ +class VideosResource_InsertMethod : public YouTubeServiceBaseRequest { + public: + /** + * The standard constructor takes all the required method parameters. + * + * @deprecated in favor constructor that includes the media upload parameters. + * + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. However, not all of those parts contain properties that can + * be set when setting or updating a video's metadata. For example, the + * statistics object encapsulates statistics that YouTube calculates for a + * video and does not contain values that you can set or modify. If the + * parameter value specifies a part that does not contain mutable values, that + * part will still be included in the API response. + * + * @param[in] _content_ The data object to insert. + */ + VideosResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. However, not all of those parts contain properties that can + * be set when setting or updating a video's metadata. For example, the + * statistics object encapsulates statistics that YouTube calculates for a + * video and does not contain values that you can set or modify. If the + * parameter value specifies a part that does not contain mutable values, that + * part will still be included in the API response. + * @param[in] _metadata_ The metadata object to insert. If this + * is NULL then do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + VideosResource_InsertMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Video* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); + + /** + * Standard destructor. + */ + virtual ~VideosResource_InsertMethod(); /** - * Clears the 'pageToken' attribute so it is no longer set. - */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } - /** - * @deprecated - * @see clear_page_token + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_pageToken() { - clear_page_token(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'pageToken' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_page_token() const { return page_token_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } /** - * Sets the 'pageToken' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** - * Clears the 'mySubscribers' attribute so it is no longer set. - */ - void clear_my_subscribers() { - _have_my_subscribers_ = false; - client::ClearCppValueHelper(&my_subscribers_); - } - /** - * @deprecated - * @see clear_my_subscribers + * Clears the 'stabilize' attribute so it is no longer set. */ - void clear_mySubscribers() { - clear_my_subscribers(); + void clear_stabilize() { + _have_stabilize_ = false; + client::ClearCppValueHelper(&stabilize_); } + /** - * Gets the optional 'mySubscribers' attribute. + * Gets the optional 'stabilize' attribute. * * If the value is not set then the default value will be returned. */ - bool get_my_subscribers() const { return my_subscribers_; } + bool get_stabilize() const { return stabilize_; } /** - * Sets the 'mySubscribers' attribute. + * Sets the 'stabilize' attribute. * - * @param[in] value Set this parameter's value to true to retrieve a feed of - * the subscribers of the authenticated user. + * @param[in] value The stabilize parameter indicates whether YouTube should + * adjust the video to remove shaky camera motions. */ - void set_my_subscribers(bool value) { - _have_my_subscribers_ = true; - my_subscribers_ = value; + void set_stabilize(bool value) { + _have_stabilize_ = true; + stabilize_ = value; } /** - * Clears the 'order' attribute so it is no longer set. + * Clears the 'onBehalfOfContentOwnerChannel' attribute so it + * is no longer set. */ - void clear_order() { - _have_order_ = false; - client::ClearCppValueHelper(&order_); + void clear_on_behalf_of_content_owner_channel() { + _have_on_behalf_of_content_owner_channel_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); } /** - * Gets the optional 'order' attribute. + * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_order() const { return order_; } + const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } /** - * Gets a modifiable pointer to the optional order' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwnerChannel' attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_order() { - _have_order_ = true; - return &order_; + string* mutable_onBehalfOfContentOwnerChannel() { + _have_on_behalf_of_content_owner_channel_ = true; + return &on_behalf_of_content_owner_channel_; } /** - * Sets the 'order' attribute. + * Sets the 'onBehalfOfContentOwnerChannel' attribute. * - * @param[in] value The order parameter specifies the method that will be - * used to sort resources in the API response. + * @param[in] value This parameter can only be used in a properly authorized + * request. Note: This parameter is intended exclusively for YouTube content + * partners. + * + * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel + * ID of the channel to which a video is being added. This parameter is + * required when a request specifies a value for the onBehalfOfContentOwner + * parameter, and it can only be used in conjunction with that parameter. In + * addition, the request must be authorized using a CMS account that is + * linked to the content owner that the onBehalfOfContentOwner parameter + * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel + * parameter value specifies must be linked to the content owner that the + * onBehalfOfContentOwner parameter specifies. + * + * This parameter is intended for YouTube content partners that own and + * manage many different YouTube channels. It allows content owners to + * authenticate once and perform actions on behalf of the channel specified + * in the parameter value, without having to provide authentication + * credentials for each separate channel. */ - void set_order(const string& value) { - _have_order_ = true; - order_ = value; + void set_on_behalf_of_content_owner_channel(const string& value) { + _have_on_behalf_of_content_owner_channel_ = true; + on_behalf_of_content_owner_channel_ = value; } /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'notifySubscribers' attribute so it is no longer + * set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_notify_subscribers() { + _have_notify_subscribers_ = false; + client::ClearCppValueHelper(¬ify_subscribers_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'notifySubscribers' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } + bool get_notify_subscribers() const { return notify_subscribers_; } /** - * Gets a modifiable pointer to the optional id' attribute. + * Sets the 'notifySubscribers' attribute. * - * @return The value can be set by dereferencing the pointer. + * @param[in] value The notifySubscribers parameter indicates whether + * YouTube should send notification to subscribers about the inserted video. */ - string* mutable_id() { - _have_id_ = true; - return &id_; + void set_notify_subscribers(bool value) { + _have_notify_subscribers_ = true; + notify_subscribers_ = value; + } + + /** + * Clears the 'autoLevels' attribute so it is no longer set. + */ + void clear_auto_levels() { + _have_auto_levels_ = false; + client::ClearCppValueHelper(&auto_levels_); } /** - * Sets the 'id' attribute. + * Gets the optional 'autoLevels' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube subscription ID(s) for the resource(s) that are being retrieved. - * In a subscription resource, the id property specifies the YouTube - * subscription ID. + * If the value is not set then the default value will be returned. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + bool get_auto_levels() const { return auto_levels_; } + + /** + * Sets the 'autoLevels' attribute. + * + * @param[in] value The autoLevels parameter indicates whether YouTube + * should automatically enhance the video's lighting and color. + */ + void set_auto_levels(bool value) { + _have_auto_levels_ = true; + auto_levels_ = value; } /** @@ -9677,44 +12859,41 @@ class SubscriptionsResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - SubscriptionListResponse* data) { + Video* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } + + /** + * Returns MediaUploader for uploading the content. + */ + + /** + * Returns the specification for media upload using the simple protocol. + */ + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; + /** + * Returns the specification for media upload using the resumable protocol. + */ + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; + private: string part_; string on_behalf_of_content_owner_; + bool stabilize_; string on_behalf_of_content_owner_channel_; - string channel_id_; - bool mine_; - uint32 max_results_; - string for_channel_id_; - string page_token_; - bool my_subscribers_; - string order_; - string id_; + bool notify_subscribers_; + bool auto_levels_; bool _have_on_behalf_of_content_owner_ : 1; + bool _have_stabilize_ : 1; bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_channel_id_ : 1; - bool _have_mine_ : 1; - bool _have_max_results_ : 1; - bool _have_for_channel_id_ : 1; - bool _have_page_token_ : 1; - bool _have_my_subscribers_ : 1; - bool _have_order_ : 1; - bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource_ListMethod); + bool _have_notify_subscribers_ : 1; + bool _have_auto_levels_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideosResource_InsertMethod); }; -typedef client::ServiceRequestPager< - SubscriptionsResource_ListMethod, - SubscriptionListResponse> - SubscriptionsResource_ListMethodPager; - - - /** - * Implements the set method. + * Implements the list method. * * @ingroup ServiceMethod * @@ -9725,38 +12904,39 @@ typedef client::ServiceRequestPager< * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.upload + * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class ThumbnailsResource_SetMethod : public YouTubeServiceBaseRequest { +class VideosResource_ListMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] video_id The videoId parameter specifies a YouTube video ID for - * which the custom video thumbnail is being provided. + * @param[in] part The part parameter specifies a comma-separated list of one + * or more video resource properties that the API response will include. The + * part names that you can include in the parameter value are id, snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. * - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to set. If - * this is NULL then do not upload any media and ignore _media_content_type_. + * If the parameter identifies a property that contains child properties, the + * child properties will be included in the response. For example, in a video + * resource, the snippet property contains the channelId, title, description, + * tags, and categoryId properties. As such, if you set part=snippet, the API + * response will contain all of those properties. */ - ThumbnailsResource_SetMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& video_id, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + VideosResource_ListMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part); /** * Standard destructor. */ - virtual ~ThumbnailsResource_SetMethod(); + virtual ~VideosResource_ListMethod(); /** @@ -9767,13 +12947,7 @@ class ThumbnailsResource_SetMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -9797,228 +12971,299 @@ class ThumbnailsResource_SetMethod : public YouTubeServiceBaseRequest { /** * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value The onBehalfOfContentOwner parameter indicates that the - * authenticated user is acting on behalf of the content owner specified in - * the parameter value. This parameter is intended for YouTube content - * partners that own and manage many different YouTube channels. It allows - * content owners to authenticate once and get access to all their video and - * channel data, without having to provide authentication credentials for - * each individual channel. The actual CMS account that the user - * authenticates with needs to be linked to the specified YouTube content - * owner. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. + * + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { _have_on_behalf_of_content_owner_ = true; on_behalf_of_content_owner_ = value; } - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); + /** + * Clears the 'regionCode' attribute so it is no longer set. + */ + void clear_region_code() { + _have_region_code_ = false; + client::ClearCppValueHelper(®ion_code_); + } - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - ThumbnailSetResponse* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); + /** + * Gets the optional 'regionCode' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_region_code() const { return region_code_; } - /** - * Returns MediaUploader for uploading the content. - */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } + /** + * Gets a modifiable pointer to the optional regionCode' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_regionCode() { + _have_region_code_ = true; + return ®ion_code_; + } - /** - * Returns the specification for media upload using the simple protocol. - */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; - /** - * Returns the specification for media upload using the resumable protocol. - */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; - private: - string video_id_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - std::unique_ptr _uploader_; + /** + * Sets the 'regionCode' attribute. + * + * @param[in] value The regionCode parameter instructs the API to select a + * video chart available in the specified region. This parameter can only be + * used in conjunction with the chart parameter. The parameter value is an + * ISO 3166-1 alpha-2 country code. + */ + void set_region_code(const string& value) { + _have_region_code_ = true; + region_code_ = value; + } - DISALLOW_COPY_AND_ASSIGN(ThumbnailsResource_SetMethod); -}; + /** + * Clears the 'locale' attribute so it is no longer set. + */ + void clear_locale() { + _have_locale_ = false; + client::ClearCppValueHelper(&locale_); + } -/** - * Implements the list method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly - * https://www.googleapis.com/auth/youtubepartner - */ -class VideoCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { - public: + + /** + * Gets the optional 'locale' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_locale() const { return locale_; } + + /** + * Gets a modifiable pointer to the optional locale' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_locale() { + _have_locale_ = true; + return &locale_; + } + + + /** + * Sets the 'locale' attribute. + * @deprecated + * + * @param[in] value DEPRECATED. + */ + void set_locale(const string& value) { + _have_locale_ = true; + locale_ = value; + } + + + + /** + * Clears the 'videoCategoryId' attribute so it is no longer + * set. + */ + void clear_video_category_id() { + _have_video_category_id_ = false; + client::ClearCppValueHelper(&video_category_id_); + } + + + /** + * Gets the optional 'videoCategoryId' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_video_category_id() const { return video_category_id_; } + + /** + * Gets a modifiable pointer to the optional videoCategoryId' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_videoCategoryId() { + _have_video_category_id_ = true; + return &video_category_id_; + } + + + /** + * Sets the 'videoCategoryId' attribute. + * + * @param[in] value The videoCategoryId parameter identifies the video + * category for which the chart should be retrieved. This parameter can only + * be used in conjunction with the chart parameter. By default, charts are + * not restricted to a particular category. + */ + void set_video_category_id(const string& value) { + _have_video_category_id_ = true; + video_category_id_ = value; + } + + + + /** + * Clears the 'chart' attribute so it is no longer set. + */ + void clear_chart() { + _have_chart_ = false; + client::ClearCppValueHelper(&chart_); + } + + + /** + * Gets the optional 'chart' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_chart() const { return chart_; } + + /** + * Gets a modifiable pointer to the optional chart' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_chart() { + _have_chart_ = true; + return &chart_; + } + + + /** + * Sets the 'chart' attribute. + * + * @param[in] value The chart parameter identifies the chart that you want + * to retrieve. + */ + void set_chart(const string& value) { + _have_chart_ = true; + chart_ = value; + } - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter specifies the videoCategory resource - * parts that the API response will include. Supported values are id and - * snippet. - * - */ - VideoCategoriesResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); - /** - * Standard destructor. - */ - virtual ~VideoCategoriesResource_ListMethod(); + /** + * Clears the 'maxResults' attribute so it is no longer set. + */ + void clear_max_results() { + _have_max_results_ = false; + client::ClearCppValueHelper(&max_results_); + } /** - * Clears the 'regionCode' attribute so it is no longer set. + * Gets the optional 'maxResults' attribute. + * + * If the value is not set then the default value will be returned. */ - void clear_region_code() { - _have_region_code_ = false; - client::ClearCppValueHelper(®ion_code_); + uint32 get_max_results() const { return max_results_; } + + /** + * Sets the 'maxResults' attribute. + * + * @param[in] value The maxResults parameter specifies the maximum number of + * items that should be returned in the result set. + * + * Note: This parameter is supported for use in conjunction with the + * myRating parameter, but it is not supported for use in conjunction with + * the id parameter. + */ + void set_max_results(uint32 value) { + _have_max_results_ = true; + max_results_ = value; } + /** - * @deprecated - * @see clear_region_code + * Clears the 'pageToken' attribute so it is no longer set. */ - void clear_regionCode() { - clear_region_code(); + void clear_page_token() { + _have_page_token_ = false; + client::ClearCppValueHelper(&page_token_); } + /** - * Gets the optional 'regionCode' attribute. + * Gets the optional 'pageToken' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_region_code() const { return region_code_; } + const string& get_page_token() const { return page_token_; } /** - * Gets a modifiable pointer to the optional regionCode' + * Gets a modifiable pointer to the optional pageToken' * attribute. * * @return The value can be set by dereferencing the pointer. */ - string* mutable_regionCode() { - _have_region_code_ = true; - return ®ion_code_; + string* mutable_pageToken() { + _have_page_token_ = true; + return &page_token_; } /** - * Sets the 'regionCode' attribute. + * Sets the 'pageToken' attribute. * - * @param[in] value The regionCode parameter instructs the API to return the - * list of video categories available in the specified country. The - * parameter value is an ISO 3166-1 alpha-2 country code. + * @param[in] value The pageToken parameter identifies a specific page in + * the result set that should be returned. In an API response, the + * nextPageToken and prevPageToken properties identify other pages that + * could be retrieved. + * + * Note: This parameter is supported for use in conjunction with the + * myRating parameter, but it is not supported for use in conjunction with + * the id parameter. */ - void set_region_code(const string& value) { - _have_region_code_ = true; - region_code_ = value; + void set_page_token(const string& value) { + _have_page_token_ = true; + page_token_ = value; } /** - * Clears the 'id' attribute so it is no longer set. + * Clears the 'debugProjectIdOverride' attribute so it is no + * longer set. */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); + void clear_debug_project_id_override() { + _have_debug_project_id_override_ = false; + client::ClearCppValueHelper(&debug_project_id_override_); } /** - * Gets the optional 'id' attribute. + * Gets the optional 'debugProjectIdOverride' attribute. * * If the value is not set then the default value will be returned. */ - const string& get_id() const { return id_; } - - /** - * Gets a modifiable pointer to the optional id' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_id() { - _have_id_ = true; - return &id_; - } - + int64 get_debug_project_id_override() const { return debug_project_id_override_; } /** - * Sets the 'id' attribute. + * Sets the 'debugProjectIdOverride' attribute. * - * @param[in] value The id parameter specifies a comma-separated list of - * video category IDs for the resources that you are retrieving. + * @param[in] value The debugProjectIdOverride parameter should be used for + * mimicking a request for a certain project ID. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; + void set_debug_project_id_override(int64 value) { + _have_debug_project_id_override_ = true; + debug_project_id_override_ = value; } - - /** * Clears the 'hl' attribute so it is no longer set. */ @@ -10049,14 +13294,102 @@ class VideoCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { /** * Sets the 'hl' attribute. * - * @param[in] value The hl parameter specifies the language that should be - * used for text values in the API response. + * @param[in] value The hl parameter instructs the API to return a localized + * version of the video details. If localized text is nor available for the + * requested language, the localizations object in the API response will + * contain the requested information in the default language instead. The + * parameter value is a BCP-47 language code. Your application can determine + * whether the requested localization was returned by checking the value of + * the snippet.localized.language property in the API response. */ void set_hl(const string& value) { _have_hl_ = true; hl_ = value; } + + + /** + * Clears the 'myRating' attribute so it is no longer set. + */ + void clear_my_rating() { + _have_my_rating_ = false; + client::ClearCppValueHelper(&my_rating_); + } + + + /** + * Gets the optional 'myRating' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_my_rating() const { return my_rating_; } + + /** + * Gets a modifiable pointer to the optional myRating' + * attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_myRating() { + _have_my_rating_ = true; + return &my_rating_; + } + + + /** + * Sets the 'myRating' attribute. + * + * @param[in] value Set this parameter's value to like or dislike to + * instruct the API to only return videos liked or disliked by the + * authenticated user. + */ + void set_my_rating(const string& value) { + _have_my_rating_ = true; + my_rating_ = value; + } + + + + /** + * Clears the 'id' attribute so it is no longer set. + */ + void clear_id() { + _have_id_ = false; + client::ClearCppValueHelper(&id_); + } + + + /** + * Gets the optional 'id' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_id() const { return id_; } + + /** + * Gets a modifiable pointer to the optional id' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_id() { + _have_id_ = true; + return &id_; + } + + + /** + * Sets the 'id' attribute. + * + * @param[in] value The id parameter specifies a comma-separated list of the + * YouTube video ID(s) for the resource(s) that are being retrieved. In a + * video resource, the id property specifies the video's ID. + */ + void set_id(const string& value) { + _have_id_ = true; + id_ = value; + } + /** * Appends variable value to the target string. * @@ -10090,25 +13423,44 @@ class VideoCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { * transport_status from the overal HTTP request status. */ util::Status ExecuteAndParseResponse( - VideoCategoryListResponse* data) { + VideoListResponse* data) { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } private: string part_; + string on_behalf_of_content_owner_; string region_code_; - string id_; + string locale_; + string video_category_id_; + string chart_; + uint32 max_results_; + string page_token_; + int64 debug_project_id_override_; string hl_; + string my_rating_; + string id_; + bool _have_on_behalf_of_content_owner_ : 1; bool _have_region_code_ : 1; - bool _have_id_ : 1; + bool _have_locale_ : 1; + bool _have_video_category_id_ : 1; + bool _have_chart_ : 1; + bool _have_max_results_ : 1; + bool _have_page_token_ : 1; + bool _have_debug_project_id_override_ : 1; bool _have_hl_ : 1; - DISALLOW_COPY_AND_ASSIGN(VideoCategoriesResource_ListMethod); + bool _have_my_rating_ : 1; + bool _have_id_ : 1; + DISALLOW_COPY_AND_ASSIGN(VideosResource_ListMethod); }; - +typedef client::ServiceRequestPager< + VideosResource_ListMethod, + VideoListResponse> + VideosResource_ListMethodPager; /** - * Implements the delete method. + * Implements the rate method. * * @ingroup ServiceMethod * @@ -10121,30 +13473,28 @@ class VideoCategoriesResource_ListMethod : public YouTubeServiceBaseRequest { * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtubepartner */ -class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { +class VideosResource_RateMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies the YouTube video ID for the - * resource that is being deleted. In a video resource, the id property - * specifies the video's ID. - * + * @param[in] id The id parameter specifies the YouTube video ID of the video + * that is being rated or having its rating removed. + * @param[in] rating Specifies the rating to record. */ - VideosResource_DeleteMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + VideosResource_RateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& rating); /** * Standard destructor. */ - virtual ~VideosResource_DeleteMethod(); + virtual ~VideosResource_RateMethod(); /** @@ -10155,13 +13505,7 @@ class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -10195,7 +13539,7 @@ class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { * many different YouTube channels. It allows content owners to authenticate * once and get access to all their video and channel data, without having * to provide authentication credentials for each individual channel. The - * actual CMS account that the user authenticates with must be linked to the + * CMS account that the user authenticates with must be linked to the * specified YouTube content owner. */ void set_on_behalf_of_content_owner(const string& value) { @@ -10227,13 +13571,14 @@ class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { private: string id_; + string rating_; string on_behalf_of_content_owner_; bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(VideosResource_DeleteMethod); + DISALLOW_COPY_AND_ASSIGN(VideosResource_RateMethod); }; /** - * Implements the getRating method. + * Implements the reportAbuse method. * * @ingroup ServiceMethod * @@ -10246,30 +13591,25 @@ class VideosResource_DeleteMethod : public YouTubeServiceBaseRequest { * https://www.googleapis.com/auth/youtube.force-ssl * https://www.googleapis.com/auth/youtubepartner */ -class VideosResource_GetRatingMethod : public YouTubeServiceBaseRequest { +class VideosResource_ReportAbuseMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] id The id parameter specifies a comma-separated list of the - * YouTube video ID(s) for the resource(s) for which you are retrieving rating - * data. In a video resource, the id property specifies the video's ID. - * + * @param[in] _content_ The data object to reportAbuse. */ - VideosResource_GetRatingMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& id); + VideosResource_ReportAbuseMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const VideoAbuseReport& _content_); /** * Standard destructor. */ - virtual ~VideosResource_GetRatingMethod(); + virtual ~VideosResource_ReportAbuseMethod(); /** @@ -10280,13 +13620,7 @@ class VideosResource_GetRatingMethod : public YouTubeServiceBaseRequest { _have_on_behalf_of_content_owner_ = false; client::ClearCppValueHelper(&on_behalf_of_content_owner_); } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. @@ -10350,30 +13684,14 @@ class VideosResource_GetRatingMethod : public YouTubeServiceBaseRequest { virtual util::Status AppendOptionalQueryParameters(string* target); - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - VideoGetRatingResponse* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - private: - string id_; string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(VideosResource_GetRatingMethod); + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(VideosResource_ReportAbuseMethod); }; /** - * Implements the insert method. + * Implements the update method. * * @ingroup ServiceMethod * @@ -10384,17 +13702,12 @@ class VideosResource_GetRatingMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.upload * https://www.googleapis.com/auth/youtubepartner */ -class VideosResource_InsertMethod : public YouTubeServiceBaseRequest { +class VideosResource_UpdateMethod : public YouTubeServiceBaseRequest { public: - /** * The standard constructor takes all the required method parameters. - * - * @deprecated in favor constructor that includes the media upload parameters. - * * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is @@ -10406,276 +13719,86 @@ class VideosResource_InsertMethod : public YouTubeServiceBaseRequest { * The part names that you can include in the parameter value are snippet, * contentDetails, fileDetails, liveStreamingDetails, localizations, player, * processingDetails, recordingDetails, statistics, status, suggestions, and - * topicDetails. However, not all of those parts contain properties that can - * be set when setting or updating a video's metadata. For example, the - * statistics object encapsulates statistics that YouTube calculates for a - * video and does not contain values that you can set or modify. If the - * parameter value specifies a part that does not contain mutable values, that - * part will still be included in the API response. - * - * @param[in] _content_ The data object to insert. - */ - VideosResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); - - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. + * topicDetails. * - * The part names that you can include in the parameter value are snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, player, - * processingDetails, recordingDetails, statistics, status, suggestions, and - * topicDetails. However, not all of those parts contain properties that can - * be set when setting or updating a video's metadata. For example, the - * statistics object encapsulates statistics that YouTube calculates for a - * video and does not contain values that you can set or modify. If the - * parameter value specifies a part that does not contain mutable values, that - * part will still be included in the API response. + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter value + * specifies. For example, a video's privacy setting is contained in the + * status part. As such, if your request is updating a private video, and the + * request's part parameter value includes the status part, the video's + * privacy setting will be updated to whatever value the request body + * specifies. If the request body does not specify a value, the existing + * privacy setting will be removed and the video will revert to the default + * privacy setting. * - * @param[in] _metadata_ The metadata object to insert. If this is NULL then - * do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore _media_content_type_. - */ - VideosResource_InsertMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Video* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); - - /** - * Standard destructor. - */ - virtual ~VideosResource_InsertMethod(); - - - /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. - */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } - - /** - * Gets the optional 'onBehalfOfContentOwner' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } - - - /** - * Sets the 'onBehalfOfContentOwner' attribute. - * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. - */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } - - - - /** - * Clears the 'stabilize' attribute so it is no longer set. - */ - void clear_stabilize() { - _have_stabilize_ = false; - client::ClearCppValueHelper(&stabilize_); - } - - - /** - * Gets the optional 'stabilize' attribute. - * - * If the value is not set then the default value will be returned. - */ - bool get_stabilize() const { return stabilize_; } - - /** - * Sets the 'stabilize' attribute. - * - * @param[in] value The stabilize parameter indicates whether YouTube should - * adjust the video to remove shaky camera motions. - */ - void set_stabilize(bool value) { - _have_stabilize_ = true; - stabilize_ = value; - } - - /** - * Clears the 'onBehalfOfContentOwnerChannel' attribute so it - * is no longer set. - */ - void clear_on_behalf_of_content_owner_channel() { - _have_on_behalf_of_content_owner_channel_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_channel_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner_channel - */ - void clear_onBehalfOfContentOwnerChannel() { - clear_on_behalf_of_content_owner_channel(); - } - - /** - * Gets the optional 'onBehalfOfContentOwnerChannel' attribute. - * - * If the value is not set then the default value will be returned. - */ - const string& get_on_behalf_of_content_owner_channel() const { return on_behalf_of_content_owner_channel_; } - - /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwnerChannel' attribute. - * - * @return The value can be set by dereferencing the pointer. - */ - string* mutable_onBehalfOfContentOwnerChannel() { - _have_on_behalf_of_content_owner_channel_ = true; - return &on_behalf_of_content_owner_channel_; - } - - - /** - * Sets the 'onBehalfOfContentOwnerChannel' attribute. - * - * @param[in] value This parameter can only be used in a properly authorized - * request. Note: This parameter is intended exclusively for YouTube content - * partners. - * - * The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel - * ID of the channel to which a video is being added. This parameter is - * required when a request specifies a value for the onBehalfOfContentOwner - * parameter, and it can only be used in conjunction with that parameter. In - * addition, the request must be authorized using a CMS account that is - * linked to the content owner that the onBehalfOfContentOwner parameter - * specifies. Finally, the channel that the onBehalfOfContentOwnerChannel - * parameter value specifies must be linked to the content owner that the - * onBehalfOfContentOwner parameter specifies. - * - * This parameter is intended for YouTube content partners that own and - * manage many different YouTube channels. It allows content owners to - * authenticate once and perform actions on behalf of the channel specified - * in the parameter value, without having to provide authentication - * credentials for each separate channel. - */ - void set_on_behalf_of_content_owner_channel(const string& value) { - _have_on_behalf_of_content_owner_channel_ = true; - on_behalf_of_content_owner_channel_ = value; - } + * In addition, not all of those parts contain properties that can be set when + * setting or updating a video's metadata. For example, the statistics object + * encapsulates statistics that YouTube calculates for a video and does not + * contain values that you can set or modify. If the parameter value specifies + * a part that does not contain mutable values, that part will still be + * included in the API response. + * @param[in] _content_ The data object to update. + */ + VideosResource_UpdateMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Video& _content_); + /** + * Standard destructor. + */ + virtual ~VideosResource_UpdateMethod(); /** - * Clears the 'notifySubscribers' attribute so it is no longer - * set. - */ - void clear_notify_subscribers() { - _have_notify_subscribers_ = false; - client::ClearCppValueHelper(¬ify_subscribers_); - } - /** - * @deprecated - * @see clear_notify_subscribers + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. */ - void clear_notifySubscribers() { - clear_notify_subscribers(); + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** - * Gets the optional 'notifySubscribers' attribute. + * Gets the optional 'onBehalfOfContentOwner' attribute. * * If the value is not set then the default value will be returned. */ - bool get_notify_subscribers() const { return notify_subscribers_; } + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } /** - * Sets the 'notifySubscribers' attribute. + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. * - * @param[in] value The notifySubscribers parameter indicates whether - * YouTube should send notification to subscribers about the inserted video. + * @return The value can be set by dereferencing the pointer. */ - void set_notify_subscribers(bool value) { - _have_notify_subscribers_ = true; - notify_subscribers_ = value; + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; } - /** - * Clears the 'autoLevels' attribute so it is no longer set. - */ - void clear_auto_levels() { - _have_auto_levels_ = false; - client::ClearCppValueHelper(&auto_levels_); - } - /** - * @deprecated - * @see clear_auto_levels - */ - void clear_autoLevels() { - clear_auto_levels(); - } /** - * Gets the optional 'autoLevels' attribute. + * Sets the 'onBehalfOfContentOwner' attribute. * - * If the value is not set then the default value will be returned. - */ - bool get_auto_levels() const { return auto_levels_; } - - /** - * Sets the 'autoLevels' attribute. + * @param[in] value Note: This parameter is intended exclusively for YouTube + * content partners. * - * @param[in] value The autoLevels parameter indicates whether YouTube - * should automatically enhance the video's lighting and color. + * The onBehalfOfContentOwner parameter indicates that the request's + * authorization credentials identify a YouTube CMS user who is acting on + * behalf of the content owner specified in the parameter value. This + * parameter is intended for YouTube content partners that own and manage + * many different YouTube channels. It allows content owners to authenticate + * once and get access to all their video and channel data, without having + * to provide authentication credentials for each individual channel. The + * actual CMS account that the user authenticates with must be linked to the + * specified YouTube content owner. */ - void set_auto_levels(bool value) { - _have_auto_levels_ = true; - auto_levels_ = value; + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; } /** @@ -10715,55 +13838,172 @@ class VideosResource_InsertMethod : public YouTubeServiceBaseRequest { return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); } + private: + string part_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; string _content_; + DISALLOW_COPY_AND_ASSIGN(VideosResource_UpdateMethod); +}; + + + +/** + * Implements the set method. + * + * @ingroup ServiceMethod + * + * This class uses the Command Pattern. Construct an instance with the required + * parameters, then set any additional optional parameters by using the + * attribute setters. To invoke the method, call Execute. + * + * One or more of these authorization scopes are required for this method: + * https://www.googleapis.com/auth/youtube + * https://www.googleapis.com/auth/youtube.force-ssl + * https://www.googleapis.com/auth/youtube.upload + * https://www.googleapis.com/auth/youtubepartner + */ +class WatermarksResource_SetMethod : public YouTubeServiceBaseRequest { + public: /** - * Invokes the server with the method. + * The standard constructor takes all the required method parameters. * - * Response detail is available from the underlying http_request. + * @deprecated in favor constructor that includes the media upload parameters. * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being provided. + * + * @param[in] _content_ The data object to set. + */ + WatermarksResource_SetMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id); + /** + * The standard constructor takes all the required method parameters. + * @param[in] _service_ The service instance to send to when executed. + * @param[in] _credential_ If not NULL, the credential to authorize with. + * In practice this is supplied by the user code that is + * creating the method instance. + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being provided. + * @param[in] _metadata_ The metadata object to set. If this + * is NULL then do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to set. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + */ + WatermarksResource_SetMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id, + const InvideoBranding* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_); + + /** + * Standard destructor. + */ + virtual ~WatermarksResource_SetMethod(); + + + /** + * Clears the 'onBehalfOfContentOwner' attribute so it is no + * longer set. + */ + void clear_on_behalf_of_content_owner() { + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); + } + + + /** + * Gets the optional 'onBehalfOfContentOwner' attribute. + * + * If the value is not set then the default value will be returned. + */ + const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + + /** + * Gets a modifiable pointer to the optional + * onBehalfOfContentOwner' attribute. + * + * @return The value can be set by dereferencing the pointer. + */ + string* mutable_onBehalfOfContentOwner() { + _have_on_behalf_of_content_owner_ = true; + return &on_behalf_of_content_owner_; + } + + + /** + * Sets the 'onBehalfOfContentOwner' attribute. + * + * @param[in] value The onBehalfOfContentOwner parameter indicates that the + * authenticated user is acting on behalf of the content owner specified in + * the parameter value. This parameter is intended for YouTube content + * partners that own and manage many different YouTube channels. It allows + * content owners to authenticate once and get access to all their video and + * channel data, without having to provide authentication credentials for + * each individual channel. The actual CMS account that the user + * authenticates with needs to be linked to the specified YouTube content + * owner. + */ + void set_on_behalf_of_content_owner(const string& value) { + _have_on_behalf_of_content_owner_ = true; + on_behalf_of_content_owner_ = value; + } + + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. */ - virtual util::Status Execute(); + virtual util::Status AppendOptionalQueryParameters(string* target); + + /** * Returns MediaUploader for uploading the content. */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } /** * Returns the specification for media upload using the simple protocol. */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec SIMPLE_MEDIA_UPLOAD; /** * Returns the specification for media upload using the resumable protocol. */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; + static const client::MediaUploadSpec RESUMABLE_MEDIA_UPLOAD; private: - string part_; + string channel_id_; string on_behalf_of_content_owner_; - bool stabilize_; - string on_behalf_of_content_owner_channel_; - bool notify_subscribers_; - bool auto_levels_; bool _have_on_behalf_of_content_owner_ : 1; - bool _have_stabilize_ : 1; - bool _have_on_behalf_of_content_owner_channel_ : 1; - bool _have_notify_subscribers_ : 1; - bool _have_auto_levels_ : 1; - std::unique_ptr _uploader_; - - DISALLOW_COPY_AND_ASSIGN(VideosResource_InsertMethod); + DISALLOW_COPY_AND_ASSIGN(WatermarksResource_SetMethod); }; /** - * Implements the list method. + * Implements the unset method. * * @ingroup ServiceMethod * @@ -10774,42 +14014,28 @@ class VideosResource_InsertMethod : public YouTubeServiceBaseRequest { * One or more of these authorization scopes are required for this method: * https://www.googleapis.com/auth/youtube * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.readonly * https://www.googleapis.com/auth/youtubepartner */ -class VideosResource_ListMethod : public YouTubeServiceBaseRequest { +class WatermarksResource_UnsetMethod : public YouTubeServiceBaseRequest { public: - - /** * The standard constructor takes all the required method parameters. * @param[in] _service_ The service instance to send to when executed. * @param[in] _credential_ If not NULL, the credential to authorize with. * In practice this is supplied by the user code that is * creating the method instance. - * @param[in] part The part parameter specifies a comma-separated list of one - * or more video resource properties that the API response will include. The - * part names that you can include in the parameter value are id, snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, player, - * processingDetails, recordingDetails, statistics, status, suggestions, and - * topicDetails. - * - * If the parameter identifies a property that contains child properties, the - * child properties will be included in the response. For example, in a video - * resource, the snippet property contains the channelId, title, description, - * tags, and categoryId properties. As such, if you set part=snippet, the API - * response will contain all of those properties. - * + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being unset. */ - VideosResource_ListMethod( - const YouTubeService* _service_, - client::AuthorizationCredential* _credential_, - const StringPiece& part); + WatermarksResource_UnsetMethod( + const YouTubeService* _service_, + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id); /** * Standard destructor. */ - virtual ~VideosResource_ListMethod(); + virtual ~WatermarksResource_UnsetMethod(); /** @@ -10817,17 +14043,11 @@ class VideosResource_ListMethod : public YouTubeServiceBaseRequest { * longer set. */ void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } - /** - * @deprecated - * @see clear_on_behalf_of_content_owner - */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); + _have_on_behalf_of_content_owner_ = false; + client::ClearCppValueHelper(&on_behalf_of_content_owner_); } + /** * Gets the optional 'onBehalfOfContentOwner' attribute. * @@ -10850,2808 +14070,2190 @@ class VideosResource_ListMethod : public YouTubeServiceBaseRequest { /** * Sets the 'onBehalfOfContentOwner' attribute. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. - * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @param[in] value The onBehalfOfContentOwner parameter indicates that the + * authenticated user is acting on behalf of the content owner specified in + * the parameter value. This parameter is intended for YouTube content + * partners that own and manage many different YouTube channels. It allows + * content owners to authenticate once and get access to all their video and + * channel data, without having to provide authentication credentials for + * each individual channel. The actual CMS account that the user + * authenticates with needs to be linked to the specified YouTube content + * owner. */ void set_on_behalf_of_content_owner(const string& value) { _have_on_behalf_of_content_owner_ = true; on_behalf_of_content_owner_ = value; } + /** + * Appends variable value to the target string. + * + * This is a helper function used to resolve templated variables in the URI. + * + * @param[in] variable_name The name of the templated variable. + * @param[in] config A pass-through parameter used for lists and maps. + * @param[in, out] target The string to append the value to. + */ + virtual util::Status AppendVariable( + const StringPiece& variable_name, + const client::UriTemplateConfig& config, + string* target); + + /** + * Appends the optional query parameters to the target URL. + * + * @param[in, out] target The URL string to append to. + */ + virtual util::Status AppendOptionalQueryParameters(string* target); + + + private: + string channel_id_; + string on_behalf_of_content_owner_; + bool _have_on_behalf_of_content_owner_ : 1; + DISALLOW_COPY_AND_ASSIGN(WatermarksResource_UnsetMethod); +}; + + + +/** + * Service definition for YouTubeService (v3). + * + * @ingroup ServiceClass + * + * For more information about this service, see the API Documentation at + * 'https://developers.google.com/youtube/v3 + */ +class YouTubeService : public client::ClientService { + public: + /** + * The name of the API that this was generated from. + */ + static const StringPiece googleapis_API_NAME; + + /** + * The version of the API that this interface was generated from. + */ + static const StringPiece googleapis_API_VERSION; + + /** + * The code generator used to generate this API. + */ + static const StringPiece googleapis_API_GENERATOR; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ActivitiesResource { + public: /** - * Clears the 'regionCode' attribute so it is no longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_region_code() { - _have_region_code_ = false; - client::ClearCppValueHelper(®ion_code_); - } + explicit ActivitiesResource(YouTubeService* service); + /** - * @deprecated - * @see clear_region_code + * Standard destructor. */ - void clear_regionCode() { - clear_region_code(); - } + ~ActivitiesResource() {} + /** - * Gets the optional 'regionCode' attribute. + * Creates a new ActivitiesResource_InsertMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet + * and contentDetails. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_region_code() const { return region_code_; } + ActivitiesResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Activity& _content_) const; /** - * Gets a modifiable pointer to the optional regionCode' - * attribute. + * Creates a new ActivitiesResource_ListMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more activity resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, and contentDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * activity resource, the snippet property contains other properties that + * identify the type of activity, a display title for the activity, and so + * forth. If you set part=snippet, the API response will also contain all of + * those nested properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_regionCode() { - _have_region_code_ = true; - return ®ion_code_; - } - + ActivitiesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'regionCode' attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more activity resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, and contentDetails. * - * @param[in] value The regionCode parameter instructs the API to select a - * video chart available in the specified region. This parameter can only be - * used in conjunction with the chart parameter. The parameter value is an - * ISO 3166-1 alpha-2 country code. + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * activity resource, the snippet property contains other properties that + * identify the type of activity, a display title for the activity, and so + * forth. If you set part=snippet, the API response will also contain all of + * those nested properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager */ - void set_region_code(const string& value) { - _have_region_code_ = true; - region_code_ = value; - } + ActivitiesResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(ActivitiesResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CaptionsResource { + public: /** - * Clears the 'locale' attribute so it is no longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_locale() { - _have_locale_ = false; - client::ClearCppValueHelper(&locale_); - } - + explicit CaptionsResource(YouTubeService* service); /** - * Gets the optional 'locale' attribute. - * - * If the value is not set then the default value will be returned. + * Standard destructor. */ - const string& get_locale() const { return locale_; } + ~CaptionsResource() {} + /** - * Gets a modifiable pointer to the optional locale' attribute. + * Creates a new CaptionsResource_DeleteMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter identifies the caption track that is being + * deleted. The value is a caption track ID as identified by the id property + * in a caption resource. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_locale() { - _have_locale_ = true; - return &locale_; - } - + CaptionsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Sets the 'locale' attribute. - * @deprecated + * Creates a new CaptionsResource_DownloadMethod instance. * - * @param[in] value DEPRECATED. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter identifies the caption track that is being + * retrieved. The value is a caption track ID as identified by the id + * property in a caption resource. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_locale(const string& value) { - _have_locale_ = true; - locale_ = value; - } - + CaptionsResource_DownloadMethod* NewDownloadMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Clears the 'videoCategoryId' attribute so it is no longer - * set. - */ - void clear_video_category_id() { - _have_video_category_id_ = false; - client::ClearCppValueHelper(&video_category_id_); - } - /** + * Creates a new CaptionsResource_InsertMethod instance. * @deprecated - * @see clear_video_category_id + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the caption resource parts + * that the API response will include. Set the parameter value to snippet. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_videoCategoryId() { - clear_video_category_id(); - } + CaptionsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new CaptionsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the caption resource parts + * that the API response will include. Set the parameter value to snippet. + * @param[in] _metadata_ The metadata object to insert. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CaptionsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Caption* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; /** - * Gets the optional 'videoCategoryId' attribute. + * Creates a new CaptionsResource_ListMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more caption resource parts that the API response will include. + * The part names that you can include in the parameter value are id and + * snippet. + * @param[in] video_id The videoId parameter specifies the YouTube video ID + * of the video for which the API should return caption tracks. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_video_category_id() const { return video_category_id_; } + CaptionsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const StringPiece& video_id) const; + /** - * Gets a modifiable pointer to the optional videoCategoryId' - * attribute. + * Creates a new CaptionsResource_UpdateMethod instance. + * @deprecated * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. Set the property value + * to snippet if you are updating the track's draft status. Otherwise, set + * the property value to id. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_videoCategoryId() { - _have_video_category_id_ = true; - return &video_category_id_; - } + CaptionsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new CaptionsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. Set the property value + * to snippet if you are updating the track's draft status. Otherwise, set + * the property value to id. + * @param[in] _metadata_ The metadata object to update. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to update. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + CaptionsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Caption* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(CaptionsResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ChannelBannersResource { + public: /** - * Sets the 'videoCategoryId' attribute. + * Standard constructor. * - * @param[in] value The videoCategoryId parameter identifies the video - * category for which the chart should be retrieved. This parameter can only - * be used in conjunction with the chart parameter. By default, charts are - * not restricted to a particular category. + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void set_video_category_id(const string& value) { - _have_video_category_id_ = true; - video_category_id_ = value; - } - - + explicit ChannelBannersResource(YouTubeService* service); /** - * Clears the 'chart' attribute so it is no longer set. + * Standard destructor. */ - void clear_chart() { - _have_chart_ = false; - client::ClearCppValueHelper(&chart_); - } + ~ChannelBannersResource() {} + /** - * Gets the optional 'chart' attribute. + * Creates a new ChannelBannersResource_InsertMethod instance. + * @deprecated * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_chart() const { return chart_; } + ChannelBannersResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_) const; /** - * Gets a modifiable pointer to the optional chart' attribute. + * Creates a new ChannelBannersResource_InsertMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _metadata_ The metadata object to insert. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_chart() { - _have_chart_ = true; - return &chart_; - } + ChannelBannersResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const ChannelBannerResource* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(ChannelBannersResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ChannelSectionsResource { + public: /** - * Sets the 'chart' attribute. + * Standard constructor. * - * @param[in] value The chart parameter identifies the chart that you want - * to retrieve. + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void set_chart(const string& value) { - _have_chart_ = true; - chart_ = value; - } + explicit ChannelSectionsResource(YouTubeService* service); + /** + * Standard destructor. + */ + ~ChannelSectionsResource() {} /** - * Clears the 'maxResults' attribute so it is no longer set. + * Creates a new ChannelSectionsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube channelSection ID + * for the resource that is being deleted. In a channelSection resource, the + * id property specifies the YouTube channelSection ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_max_results() { - _have_max_results_ = false; - client::ClearCppValueHelper(&max_results_); - } + ChannelSectionsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; + /** - * @deprecated - * @see clear_max_results + * Creates a new ChannelSectionsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet + * and contentDetails. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_maxResults() { - clear_max_results(); - } + ChannelSectionsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const ChannelSection& _content_) const; /** - * Gets the optional 'maxResults' attribute. + * Creates a new ChannelSectionsResource_ListMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more channelSection resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, and contentDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * channelSection resource, the snippet property contains other properties, + * such as a display title for the channelSection. If you set part=snippet, + * the API response will also contain all of those nested properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - uint32 get_max_results() const { return max_results_; } + ChannelSectionsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'maxResults' attribute. + * Creates a new ChannelSectionsResource_UpdateMethod instance. * - * @param[in] value The maxResults parameter specifies the maximum number of - * items that should be returned in the result set. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * - * Note: This parameter is supported for use in conjunction with the - * myRating parameter, but it is not supported for use in conjunction with - * the id parameter. + * The part names that you can include in the parameter value are snippet + * and contentDetails. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_max_results(uint32 value) { - _have_max_results_ = true; - max_results_ = value; - } + ChannelSectionsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const ChannelSection& _content_) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class ChannelsResource { + public: /** - * Clears the 'pageToken' attribute so it is no longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_page_token() { - _have_page_token_ = false; - client::ClearCppValueHelper(&page_token_); - } + explicit ChannelsResource(YouTubeService* service); + /** - * @deprecated - * @see clear_page_token + * Standard destructor. */ - void clear_pageToken() { - clear_page_token(); - } + ~ChannelsResource() {} + /** - * Gets the optional 'pageToken' attribute. + * Creates a new ChannelsResource_ListMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more channel resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, statistics, topicDetails, and + * invideoPromotion. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * channel resource, the contentDetails property contains other properties, + * such as the uploads properties. As such, if you set part=contentDetails, + * the API response will also contain all of those nested properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_page_token() const { return page_token_; } + ChannelsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Gets a modifiable pointer to the optional pageToken' - * attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more channel resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, statistics, topicDetails, and + * invideoPromotion. * - * @return The value can be set by dereferencing the pointer. + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * channel resource, the contentDetails property contains other properties, + * such as the uploads properties. As such, if you set part=contentDetails, + * the API response will also contain all of those nested properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager */ - string* mutable_pageToken() { - _have_page_token_ = true; - return &page_token_; - } - + ChannelsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'pageToken' attribute. + * Creates a new ChannelsResource_UpdateMethod instance. * - * @param[in] value The pageToken parameter identifies a specific page in - * the result set that should be returned. In an API response, the - * nextPageToken and prevPageToken properties identify other pages that - * could be retrieved. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. * - * Note: This parameter is supported for use in conjunction with the - * myRating parameter, but it is not supported for use in conjunction with - * the id parameter. + * The part names that you can include in the parameter value are id and + * invideoPromotion. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_page_token(const string& value) { - _have_page_token_ = true; - page_token_ = value; - } + ChannelsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Channel& _content_) const; + + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(ChannelsResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CommentThreadsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit CommentThreadsResource(YouTubeService* service); /** - * Clears the 'hl' attribute so it is no longer set. + * Standard destructor. */ - void clear_hl() { - _have_hl_ = false; - client::ClearCppValueHelper(&hl_); - } + ~CommentThreadsResource() {} /** - * Gets the optional 'hl' attribute. + * Creates a new CommentThreadsResource_InsertMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be set. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_hl() const { return hl_; } + CommentThreadsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const CommentThread& _content_) const; /** - * Gets a modifiable pointer to the optional hl' attribute. + * Creates a new CommentThreadsResource_ListMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the commentThread resource + * parts that the API response will include. Supported values are id, + * snippet and replies. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_hl() { - _have_hl_ = true; - return &hl_; - } + CommentThreadsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the commentThread resource + * parts that the API response will include. Supported values are id, + * snippet and replies. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + CommentThreadsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'hl' attribute. + * Creates a new CommentThreadsResource_UpdateMethod instance. * - * @param[in] value The hl parameter instructs the API to return a localized - * version of the video details. If localized text is nor available for the - * requested language, the localizations object in the API response will - * contain the requested information in the default language instead. The - * parameter value is a BCP-47 language code. Your application can determine - * whether the requested localization was returned by checking the value of - * the snippet.localized.language property in the API response. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id, + * snippet and replies. However only snippet contains properties that can be + * updated. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_hl(const string& value) { - _have_hl_ = true; - hl_ = value; - } + CommentThreadsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const CommentThread& _content_) const; + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(CommentThreadsResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class CommentsResource { + public: /** - * Clears the 'myRating' attribute so it is no longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_my_rating() { - _have_my_rating_ = false; - client::ClearCppValueHelper(&my_rating_); - } + explicit CommentsResource(YouTubeService* service); + /** - * @deprecated - * @see clear_my_rating + * Standard destructor. */ - void clear_myRating() { - clear_my_rating(); - } + ~CommentsResource() {} + /** - * Gets the optional 'myRating' attribute. + * Creates a new CommentsResource_DeleteMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the comment ID for the resource + * that should be deleted. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_my_rating() const { return my_rating_; } + CommentsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Gets a modifiable pointer to the optional myRating' - * attribute. + * Creates a new CommentsResource_InsertMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be set. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_myRating() { - _have_my_rating_ = true; - return &my_rating_; - } - + CommentsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Comment& _content_) const; /** - * Sets the 'myRating' attribute. + * Creates a new CommentsResource_ListMethod instance. * - * @param[in] value Set this parameter's value to like or dislike to - * instruct the API to only return videos liked or disliked by the - * authenticated user. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the comment resource parts + * that the API response will include. Supported values are id and snippet. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_my_rating(const string& value) { - _have_my_rating_ = true; - my_rating_ = value; - } - - + CommentsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Clears the 'id' attribute so it is no longer set. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the comment resource parts + * that the API response will include. Supported values are id and snippet. + * + * + * @see googleapis::googleapis::ServiceRequestPager */ - void clear_id() { - _have_id_ = false; - client::ClearCppValueHelper(&id_); - } - + CommentsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Gets the optional 'id' attribute. + * Creates a new CommentsResource_MarkAsSpamMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies a comma-separated list of IDs of + * comments which should get flagged as spam. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_id() const { return id_; } + CommentsResource_MarkAsSpamMethod* NewMarkAsSpamMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Gets a modifiable pointer to the optional id' attribute. + * Creates a new CommentsResource_SetModerationStatusMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies a comma-separated list of IDs of + * comments whose moderation status should be updated. + * @param[in] moderation_status Determines the new moderation status of the + * specified comments. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_id() { - _have_id_ = true; - return &id_; - } - + CommentsResource_SetModerationStatusMethod* NewSetModerationStatusMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& moderation_status) const; /** - * Sets the 'id' attribute. + * Creates a new CommentsResource_UpdateMethod instance. * - * @param[in] value The id parameter specifies a comma-separated list of the - * YouTube video ID(s) for the resource(s) that are being retrieved. In a - * video resource, the id property specifies the video's ID. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are id and + * snippet. However only snippet contains properties that can be updated. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_id(const string& value) { - _have_id_ = true; - id_ = value; - } - - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + CommentsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Comment& _content_) const; - /** - * Appends the optional query parameters to the target URL. - * - * @param[in, out] target The URL string to append to. - */ - virtual util::Status AppendOptionalQueryParameters(string* target); + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(CommentsResource); + }; /** - * Executes the method and parses the response into a data object on success. + * Acts as message factory for accessing data. * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. + * @ingroup ServiceClass */ - util::Status ExecuteAndParseResponse( - VideoListResponse* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } + class GuideCategoriesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit GuideCategoriesResource(YouTubeService* service); - private: - string part_; - string on_behalf_of_content_owner_; - string region_code_; - string locale_; - string video_category_id_; - string chart_; - uint32 max_results_; - string page_token_; - string hl_; - string my_rating_; - string id_; - bool _have_on_behalf_of_content_owner_ : 1; - bool _have_region_code_ : 1; - bool _have_locale_ : 1; - bool _have_video_category_id_ : 1; - bool _have_chart_ : 1; - bool _have_max_results_ : 1; - bool _have_page_token_ : 1; - bool _have_hl_ : 1; - bool _have_my_rating_ : 1; - bool _have_id_ : 1; - DISALLOW_COPY_AND_ASSIGN(VideosResource_ListMethod); -}; + /** + * Standard destructor. + */ + ~GuideCategoriesResource() {} -typedef client::ServiceRequestPager< - VideosResource_ListMethod, - VideoListResponse> - VideosResource_ListMethodPager; -/** - * Implements the rate method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class VideosResource_RateMethod : public YouTubeServiceBaseRequest { - public: + /** + * Creates a new GuideCategoriesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more guideCategory resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id and snippet. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * guideCategory resource, the snippet property contains other properties, + * such as the category's title. If you set part=snippet, the API response + * will also contain all of those nested properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + GuideCategoriesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(GuideCategoriesResource); + }; /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] id The id parameter specifies the YouTube video ID of the video - * that is being rated or having its rating removed. + * Acts as message factory for accessing data. * - * @param[in] rating Specifies the rating to record. + * @ingroup ServiceClass + */ + class I18nLanguagesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit I18nLanguagesResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~I18nLanguagesResource() {} + + + /** + * Creates a new I18nLanguagesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more i18nLanguage resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id and snippet. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + I18nLanguagesResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(I18nLanguagesResource); + }; + + /** + * Acts as message factory for accessing data. * + * @ingroup ServiceClass */ - VideosResource_RateMethod( - const YouTubeService* _service_, + class I18nRegionsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit I18nRegionsResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~I18nRegionsResource() {} + + + /** + * Creates a new I18nRegionsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more i18nRegion resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id and snippet. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + I18nRegionsResource_ListMethod* NewListMethod( client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& rating); + const StringPiece& part) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(I18nRegionsResource); + }; /** - * Standard destructor. + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass */ - virtual ~VideosResource_RateMethod(); + class LiveBroadcastsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit LiveBroadcastsResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~LiveBroadcastsResource() {} /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Creates a new LiveBroadcastsResource_BindMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the unique ID of the broadcast + * that is being bound to a video stream. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } + LiveBroadcastsResource_BindMethod* NewBindMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& part) const; + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Creates a new LiveBroadcastsResource_ControlMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube live broadcast ID + * that uniquely identifies the broadcast in which the slate is being + * updated. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + LiveBroadcastsResource_ControlMethod* NewControlMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& part) const; /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Creates a new LiveBroadcastsResource_DeleteMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube live broadcast ID + * for the resource that is being deleted. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + LiveBroadcastsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Creates a new LiveBroadcastsResource_InsertMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, contentDetails, and status. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } + LiveBroadcastsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveBroadcast& _content_) const; + /** + * Creates a new LiveBroadcastsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveBroadcastsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * @see googleapis::googleapis::ServiceRequestPager */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } + LiveBroadcastsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new LiveBroadcastsResource_TransitionMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] broadcast_status The broadcastStatus parameter identifies the + * state to which the broadcast is changing. Note that to transition a + * broadcast to either the testing or live state, the status.streamStatus + * must be active for the stream that the broadcast is bound to. + * @param[in] id The id parameter specifies the unique ID of the broadcast + * that is transitioning to another status. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveBroadcast resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveBroadcastsResource_TransitionMethod* NewTransitionMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& broadcast_status, + const StringPiece& id, + const StringPiece& part) const; + + /** + * Creates a new LiveBroadcastsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, contentDetails, and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. For example, a broadcast's privacy status is defined in + * the status part. As such, if your request is updating a private or + * unlisted broadcast, and the request's part parameter value includes the + * status part, the broadcast's privacy setting will be updated to whatever + * value the request body specifies. If the request body does not specify a + * value, the existing privacy setting will be removed and the broadcast + * will revert to the default privacy setting. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveBroadcastsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveBroadcast& _content_) const; - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource); + }; /** - * Appends the optional query parameters to the target URL. + * Acts as message factory for accessing data. * - * @param[in, out] target The URL string to append to. + * @ingroup ServiceClass */ - virtual util::Status AppendOptionalQueryParameters(string* target); + class LiveStreamsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit LiveStreamsResource(YouTubeService* service); + /** + * Standard destructor. + */ + ~LiveStreamsResource() {} - private: - string id_; - string rating_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(VideosResource_RateMethod); -}; -/** - * Implements the update method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class VideosResource_UpdateMethod : public YouTubeServiceBaseRequest { - public: + /** + * Creates a new LiveStreamsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube live stream ID for + * the resource that is being deleted. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveStreamsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; + /** + * Creates a new LiveStreamsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, cdn, and status. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveStreamsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const LiveStream& _content_) const; - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] part The part parameter serves two purposes in this operation. - * It identifies the properties that the write operation will set as well as - * the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, player, - * processingDetails, recordingDetails, statistics, status, suggestions, and - * topicDetails. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter value - * specifies. For example, a video's privacy setting is contained in the - * status part. As such, if your request is updating a private video, and the - * request's part parameter value includes the status part, the video's - * privacy setting will be updated to whatever value the request body - * specifies. If the request body does not specify a value, the existing - * privacy setting will be removed and the video will revert to the default - * privacy setting. - * - * In addition, not all of those parts contain properties that can be set when - * setting or updating a video's metadata. For example, the statistics object - * encapsulates statistics that YouTube calculates for a video and does not - * contain values that you can set or modify. If the parameter value specifies - * a part that does not contain mutable values, that part will still be - * included in the API response. - * - * @param[in] _content_ The data object to update. - * - */ - VideosResource_UpdateMethod( - const YouTubeService* _service_, + /** + * Creates a new LiveStreamsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveStream resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, cdn, and status. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveStreamsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more liveStream resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, cdn, and status. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + LiveStreamsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new LiveStreamsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part properties that you can include in the parameter value are id, + * snippet, cdn, and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. If the request body does not specify a value for a + * mutable property, the existing value for that property will be removed. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + LiveStreamsResource_UpdateMethod* NewUpdateMethod( client::AuthorizationCredential* _credential_, const StringPiece& part, - const Video& _content_ - ); + const LiveStream& _content_) const; - /** - * Standard destructor. - */ - virtual ~VideosResource_UpdateMethod(); + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class PlaylistItemsResource { + public: /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } + explicit PlaylistItemsResource(YouTubeService* service); + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Standard destructor. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + ~PlaylistItemsResource() {} + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Creates a new PlaylistItemsResource_DeleteMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube playlist item ID for + * the playlist item that is being deleted. In a playlistItem resource, the + * id property specifies the playlist item's ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + PlaylistItemsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Creates a new PlaylistItemsResource_InsertMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, and status. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } + PlaylistItemsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const PlaylistItem& _content_) const; + /** + * Creates a new PlaylistItemsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more playlistItem resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * playlistItem resource, the snippet property contains numerous fields, + * including the title, description, position, and resourceId properties. As + * such, if you set part=snippet, the API response will contain all of those + * properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistItemsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more playlistItem resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, contentDetails, and status. * - * @param[in] value Note: This parameter is intended exclusively for YouTube - * content partners. + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * playlistItem resource, the snippet property contains numerous fields, + * including the title, description, position, and resourceId properties. As + * such, if you set part=snippet, the API response will contain all of those + * properties. * - * The onBehalfOfContentOwner parameter indicates that the request's - * authorization credentials identify a YouTube CMS user who is acting on - * behalf of the content owner specified in the parameter value. This - * parameter is intended for YouTube content partners that own and manage - * many different YouTube channels. It allows content owners to authenticate - * once and get access to all their video and channel data, without having - * to provide authentication credentials for each individual channel. The - * actual CMS account that the user authenticates with must be linked to the - * specified YouTube content owner. + * + * @see googleapis::googleapis::ServiceRequestPager */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } + PlaylistItemsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new PlaylistItemsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. For example, a playlist item can specify a start time + * and end time, which identify the times portion of the video that should + * play when users watch the video in the playlist. If your request is + * updating a playlist item that sets these values, and the request's part + * parameter value includes the contentDetails part, the playlist item's + * start and end times will be updated to whatever value the request body + * specifies. If the request body does not specify values, the existing + * start and end times will be removed and replaced with the default + * settings. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistItemsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const PlaylistItem& _content_) const; - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource); + }; /** - * Appends the optional query parameters to the target URL. + * Acts as message factory for accessing data. * - * @param[in, out] target The URL string to append to. + * @ingroup ServiceClass */ - virtual util::Status AppendOptionalQueryParameters(string* target); + class PlaylistsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit PlaylistsResource(YouTubeService* service); + /** + * Standard destructor. + */ + ~PlaylistsResource() {} - /** - * Executes the method and parses the response into a data object on success. - * - * @param[out] data Loads from the response payload JSON data on success. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - util::Status ExecuteAndParseResponse( - Video* data) { - return YouTubeServiceBaseRequest::ExecuteAndParseResponse(data); - } - private: - string part_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; string _content_; - DISALLOW_COPY_AND_ASSIGN(VideosResource_UpdateMethod); -}; + /** + * Creates a new PlaylistsResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube playlist ID for the + * playlist that is being deleted. In a playlist resource, the id property + * specifies the playlist's ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; + /** + * Creates a new PlaylistsResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet + * and status. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Playlist& _content_) const; + /** + * Creates a new PlaylistsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more playlist resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, status, and contentDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * playlist resource, the snippet property contains properties like author, + * title, description, tags, and timeCreated. As such, if you set + * part=snippet, the API response will contain all of those properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; -/** - * Implements the set method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtube.upload - * https://www.googleapis.com/auth/youtubepartner - */ -class WatermarksResource_SetMethod : public YouTubeServiceBaseRequest { - public: + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more playlist resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, status, and contentDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * playlist resource, the snippet property contains properties like author, + * title, description, tags, and timeCreated. As such, if you set + * part=snippet, the API response will contain all of those properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + PlaylistsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new PlaylistsResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet + * and status. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. For example, a playlist's privacy setting is contained + * in the status part. As such, if your request is updating a private + * playlist, and the request's part parameter value includes the status + * part, the playlist's privacy setting will be updated to whatever value + * the request body specifies. If the request body does not specify a value, + * the existing privacy setting will be removed and the playlist will revert + * to the default privacy setting. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + PlaylistsResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Playlist& _content_) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(PlaylistsResource); + }; /** - * The standard constructor takes all the required method parameters. - * - * @deprecated in favor constructor that includes the media upload parameters. - * - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] channel_id The channelId parameter specifies a YouTube channel - * ID for which the watermark is being provided. + * Acts as message factory for accessing data. * - * @param[in] _content_ The data object to set. + * @ingroup ServiceClass */ - WatermarksResource_SetMethod( - const YouTubeService* _service_, + class SearchResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit SearchResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~SearchResource() {} + + + /** + * Creates a new SearchResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more search resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id and snippet. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * search result, the snippet property contains other properties that + * identify the result's title, description, and so forth. If you set + * part=snippet, the API response will also contain all of those nested + * properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + SearchResource_ListMethod* NewListMethod( client::AuthorizationCredential* _credential_, - const StringPiece& channel_id); + const StringPiece& part) const; - /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] channel_id The channelId parameter specifies a YouTube channel - * ID for which the watermark is being provided. - * - * @param[in] _metadata_ The metadata object to set. If this is NULL then do - * not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to set. If - * this is NULL then do not upload any media and ignore _media_content_type_. - */ - WatermarksResource_SetMethod( - const YouTubeService* _service_, + /** + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more search resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id and snippet. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * search result, the snippet property contains other properties that + * identify the result's title, description, and so forth. If you set + * part=snippet, the API response will also contain all of those nested + * properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager + */ + SearchResource_ListMethodPager* NewListMethodPager( client::AuthorizationCredential* _credential_, - const StringPiece& channel_id, - const InvideoBranding* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_); + const StringPiece& part) const; - /** - * Standard destructor. - */ - virtual ~WatermarksResource_SetMethod(); + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(SearchResource); + }; + /** + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass + */ + class SubscriptionsResource { + public: /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } + explicit SubscriptionsResource(YouTubeService* service); + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Standard destructor. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + ~SubscriptionsResource() {} + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Creates a new SubscriptionsResource_DeleteMethod instance. * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube subscription ID for + * the resource that is being deleted. In a subscription resource, the id + * property specifies the YouTube subscription ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + SubscriptionsResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Creates a new SubscriptionsResource_InsertMethod instance. * - * @return The value can be set by dereferencing the pointer. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet + * and contentDetails. + * @param[in] _content_ The data object to insert. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } + SubscriptionsResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Subscription& _content_) const; + /** + * Creates a new SubscriptionsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more subscription resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, and contentDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * subscription resource, the snippet property contains other properties, + * such as a display title for the subscription. If you set part=snippet, + * the API response will also contain all of those nested properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + SubscriptionsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more subscription resource properties that the API response will + * include. The part names that you can include in the parameter value are + * id, snippet, and contentDetails. * - * @param[in] value The onBehalfOfContentOwner parameter indicates that the - * authenticated user is acting on behalf of the content owner specified in - * the parameter value. This parameter is intended for YouTube content - * partners that own and manage many different YouTube channels. It allows - * content owners to authenticate once and get access to all their video and - * channel data, without having to provide authentication credentials for - * each individual channel. The actual CMS account that the user - * authenticates with needs to be linked to the specified YouTube content - * owner. + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * subscription resource, the snippet property contains other properties, + * such as a display title for the subscription. If you set part=snippet, + * the API response will also contain all of those nested properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } + SubscriptionsResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource); + }; /** - * Appends the optional query parameters to the target URL. + * Acts as message factory for accessing data. * - * @param[in, out] target The URL string to append to. + * @ingroup ServiceClass */ - virtual util::Status AppendOptionalQueryParameters(string* target); + class ThumbnailsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit ThumbnailsResource(YouTubeService* service); + /** + * Standard destructor. + */ + ~ThumbnailsResource() {} - /** - * Invokes the server with the method. - * - * Response detail is available from the underlying http_request. - * - * @return Success if an HTTP 2xx response was received. Otherwise the - * status indicates the reason for failure. Finer detail may be - * available from the underlying http_request to distinguish the - * transport_status from the overal HTTP request status. - */ - virtual util::Status Execute(); - /** - * Returns MediaUploader for uploading the content. - */ - client::MediaUploader* media_uploader() { - return _uploader_.get(); - } + /** + * Creates a new ThumbnailsResource_SetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] video_id The videoId parameter specifies a YouTube video ID + * for which the custom video thumbnail is being provided. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to set. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + ThumbnailsResource_SetMethod* NewSetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& video_id, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(ThumbnailsResource); + }; /** - * Returns the specification for media upload using the simple protocol. - */ - static const client::MediaUploadSpec - SIMPLE_MEDIA_UPLOAD; - /** - * Returns the specification for media upload using the resumable protocol. + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass */ - static const client::MediaUploadSpec - RESUMABLE_MEDIA_UPLOAD; + class VideoAbuseReportReasonsResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit VideoAbuseReportReasonsResource(YouTubeService* service); - private: - string channel_id_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - std::unique_ptr _uploader_; + /** + * Standard destructor. + */ + ~VideoAbuseReportReasonsResource() {} - DISALLOW_COPY_AND_ASSIGN(WatermarksResource_SetMethod); -}; -/** - * Implements the unset method. - * - * @ingroup ServiceMethod - * - * This class uses the Command Pattern. Construct an instance with the required - * parameters, then set any additional optional parameters by using the - * attribute setters. To invoke the method, call Execute. - * - * One or more of these authorization scopes are required for this method: - * https://www.googleapis.com/auth/youtube - * https://www.googleapis.com/auth/youtube.force-ssl - * https://www.googleapis.com/auth/youtubepartner - */ -class WatermarksResource_UnsetMethod : public YouTubeServiceBaseRequest { - public: + /** + * Creates a new VideoAbuseReportReasonsResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the videoCategory resource + * parts that the API response will include. Supported values are id and + * snippet. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideoAbuseReportReasonsResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(VideoAbuseReportReasonsResource); + }; /** - * The standard constructor takes all the required method parameters. - * @param[in] _service_ The service instance to send to when executed. - * @param[in] _credential_ If not NULL, the credential to authorize with. - * In practice this is supplied by the user code that is - * creating the method instance. - * @param[in] channel_id The channelId parameter specifies a YouTube channel - * ID for which the watermark is being unset. + * Acts as message factory for accessing data. * + * @ingroup ServiceClass */ - WatermarksResource_UnsetMethod( - const YouTubeService* _service_, + class VideoCategoriesResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit VideoCategoriesResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~VideoCategoriesResource() {} + + + /** + * Creates a new VideoCategoriesResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies the videoCategory resource + * parts that the API response will include. Supported values are id and + * snippet. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideoCategoriesResource_ListMethod* NewListMethod( client::AuthorizationCredential* _credential_, - const StringPiece& channel_id); + const StringPiece& part) const; + + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(VideoCategoriesResource); + }; /** - * Standard destructor. + * Acts as message factory for accessing data. + * + * @ingroup ServiceClass */ - virtual ~WatermarksResource_UnsetMethod(); + class VideosResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit VideosResource(YouTubeService* service); + + /** + * Standard destructor. + */ + ~VideosResource() {} /** - * Clears the 'onBehalfOfContentOwner' attribute so it is no - * longer set. + * Creates a new VideosResource_DeleteMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube video ID for the + * resource that is being deleted. In a video resource, the id property + * specifies the video's ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_on_behalf_of_content_owner() { - _have_on_behalf_of_content_owner_ = false; - client::ClearCppValueHelper(&on_behalf_of_content_owner_); - } + VideosResource_DeleteMethod* NewDeleteMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; + /** - * @deprecated - * @see clear_on_behalf_of_content_owner + * Creates a new VideosResource_GetRatingMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies a comma-separated list of the + * YouTube video ID(s) for the resource(s) for which you are retrieving + * rating data. In a video resource, the id property specifies the video's + * ID. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void clear_onBehalfOfContentOwner() { - clear_on_behalf_of_content_owner(); - } + VideosResource_GetRatingMethod* NewGetRatingMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id) const; + /** - * Gets the optional 'onBehalfOfContentOwner' attribute. + * Creates a new VideosResource_InsertMethod instance. + * @deprecated * - * If the value is not set then the default value will be returned. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. However, not all of those parts contain properties that can + * be set when setting or updating a video's metadata. For example, the + * statistics object encapsulates statistics that YouTube calculates for a + * video and does not contain values that you can set or modify. If the + * parameter value specifies a part that does not contain mutable values, + * that part will still be included in the API response. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideosResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + + /** + * Creates a new VideosResource_InsertMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. However, not all of those parts contain properties that can + * be set when setting or updating a video's metadata. For example, the + * statistics object encapsulates statistics that YouTube calculates for a + * video and does not contain values that you can set or modify. If the + * parameter value specifies a part that does not contain mutable values, + * that part will still be included in the API response. + * @param[in] _metadata_ The metadata object to insert. If this is NULL then + * do not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to insert. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideosResource_InsertMethod* NewInsertMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Video* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; + + /** + * Creates a new VideosResource_ListMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more video resource properties that the API response will include. + * The part names that you can include in the parameter value are id, + * snippet, contentDetails, fileDetails, liveStreamingDetails, + * localizations, player, processingDetails, recordingDetails, statistics, + * status, suggestions, and topicDetails. + * + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * video resource, the snippet property contains the channelId, title, + * description, tags, and categoryId properties. As such, if you set + * part=snippet, the API response will contain all of those properties. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - const string& get_on_behalf_of_content_owner() const { return on_behalf_of_content_owner_; } + VideosResource_ListMethod* NewListMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; /** - * Gets a modifiable pointer to the optional - * onBehalfOfContentOwner' attribute. + * Creates a pager for iterating over incremental result pages. + * @param[in] _credential_ NULL credentials will not authorize the request. + * @param[in] part The part parameter specifies a comma-separated list of + * one or more video resource properties that the API response will include. + * The part names that you can include in the parameter value are id, + * snippet, contentDetails, fileDetails, liveStreamingDetails, + * localizations, player, processingDetails, recordingDetails, statistics, + * status, suggestions, and topicDetails. * - * @return The value can be set by dereferencing the pointer. + * If the parameter identifies a property that contains child properties, + * the child properties will be included in the response. For example, in a + * video resource, the snippet property contains the channelId, title, + * description, tags, and categoryId properties. As such, if you set + * part=snippet, the API response will contain all of those properties. + * + * + * @see googleapis::googleapis::ServiceRequestPager */ - string* mutable_onBehalfOfContentOwner() { - _have_on_behalf_of_content_owner_ = true; - return &on_behalf_of_content_owner_; - } + VideosResource_ListMethodPager* NewListMethodPager( + client::AuthorizationCredential* _credential_, + const StringPiece& part) const; + /** + * Creates a new VideosResource_RateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] id The id parameter specifies the YouTube video ID of the + * video that is being rated or having its rating removed. + * @param[in] rating Specifies the rating to record. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideosResource_RateMethod* NewRateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& id, + const StringPiece& rating) const; /** - * Sets the 'onBehalfOfContentOwner' attribute. + * Creates a new VideosResource_ReportAbuseMethod instance. * - * @param[in] value The onBehalfOfContentOwner parameter indicates that the - * authenticated user is acting on behalf of the content owner specified in - * the parameter value. This parameter is intended for YouTube content - * partners that own and manage many different YouTube channels. It allows - * content owners to authenticate once and get access to all their video and - * channel data, without having to provide authentication credentials for - * each individual channel. The actual CMS account that the user - * authenticates with needs to be linked to the specified YouTube content - * owner. + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] _content_ The data object to reportAbuse. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. */ - void set_on_behalf_of_content_owner(const string& value) { - _have_on_behalf_of_content_owner_ = true; - on_behalf_of_content_owner_ = value; - } + VideosResource_ReportAbuseMethod* NewReportAbuseMethod( + client::AuthorizationCredential* _credential_, + const VideoAbuseReport& _content_) const; + + /** + * Creates a new VideosResource_UpdateMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] part The part parameter serves two purposes in this operation. + * It identifies the properties that the write operation will set as well as + * the properties that the API response will include. + * + * The part names that you can include in the parameter value are snippet, + * contentDetails, fileDetails, liveStreamingDetails, localizations, player, + * processingDetails, recordingDetails, statistics, status, suggestions, and + * topicDetails. + * + * Note that this method will override the existing values for all of the + * mutable properties that are contained in any parts that the parameter + * value specifies. For example, a video's privacy setting is contained in + * the status part. As such, if your request is updating a private video, + * and the request's part parameter value includes the status part, the + * video's privacy setting will be updated to whatever value the request + * body specifies. If the request body does not specify a value, the + * existing privacy setting will be removed and the video will revert to the + * default privacy setting. + * + * In addition, not all of those parts contain properties that can be set + * when setting or updating a video's metadata. For example, the statistics + * object encapsulates statistics that YouTube calculates for a video and + * does not contain values that you can set or modify. If the parameter + * value specifies a part that does not contain mutable values, that part + * will still be included in the API response. + * @param[in] _content_ The data object to update. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + VideosResource_UpdateMethod* NewUpdateMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& part, + const Video& _content_) const; - /** - * Appends variable value to the target string. - * - * This is a helper function used to resolve templated variables in the URI. - * - * @param[in] variable_name The name of the templated variable. - * @param[in] config A pass-through parameter used for lists and maps. - * @param[in, out] target The string to append the value to. - */ - virtual util::Status AppendVariable( - const StringPiece& variable_name, - const client::UriTemplateConfig& config, - string* target); + private: + YouTubeService* service_; + + DISALLOW_COPY_AND_ASSIGN(VideosResource); + }; /** - * Appends the optional query parameters to the target URL. + * Acts as message factory for accessing data. * - * @param[in, out] target The URL string to append to. + * @ingroup ServiceClass */ - virtual util::Status AppendOptionalQueryParameters(string* target); + class WatermarksResource { + public: + /** + * Standard constructor. + * + * @param[in] service The service instance is used to bind to the + * methods created from this resource instance. This will be + * the service that methods are invoked on. + */ + explicit WatermarksResource(YouTubeService* service); + /** + * Standard destructor. + */ + ~WatermarksResource() {} - private: - string channel_id_; - string on_behalf_of_content_owner_; - bool _have_on_behalf_of_content_owner_ : 1; - DISALLOW_COPY_AND_ASSIGN(WatermarksResource_UnsetMethod); -}; + /** + * Creates a new WatermarksResource_SetMethod instance. + * @deprecated + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being provided. + * + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + WatermarksResource_SetMethod* NewSetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id) const; + + /** + * Creates a new WatermarksResource_SetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being provided. + * @param[in] _metadata_ The metadata object to set. If this is NULL then do + * not upload any metadata. + * @param[in] _media_content_type_ The content type of the data in the + * _media_content_reader_. + * @param[in] _media_content_reader_ The media content to set. If + * this is NULL then do not upload any media and ignore + * _media_content_type_. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + WatermarksResource_SetMethod* NewSetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id, + const InvideoBranding* _metadata_, + const StringPiece& _media_content_type_, + client::DataReader* _media_content_reader_) const; -/** - * Service definition for YouTubeService (v3). - * - * @ingroup ServiceClass - * - * For more information about this service, see the API Documentation at - * 'https://developers.google.com/youtube/v3 - */ -class YouTubeService : public client::ClientService { - public: - /** - * The name of the API that this was generated from. - */ - static const StringPiece googleapis_API_NAME; - - /** - * The version of the API that this interface was generated from. - */ - static const StringPiece googleapis_API_VERSION; - - /** - * The code generator used to generate this API. - */ - static const StringPiece googleapis_API_GENERATOR; - - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ActivitiesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ActivitiesResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~ActivitiesResource() {} - - - /** - * Creates a new ActivitiesResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and contentDetails. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ActivitiesResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Activity& _content_) const; - - /** - * Creates a new ActivitiesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more activity resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a activity resource, the snippet property contains other properties - * that identify the type of activity, a display title for the activity, - * and so forth. If you set part=snippet, the API response will also - * contain all of those nested properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ActivitiesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more activity resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a activity resource, the snippet property contains other properties - * that identify the type of activity, a display title for the activity, - * and so forth. If you set part=snippet, the API response will also - * contain all of those nested properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - ActivitiesResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(ActivitiesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChannelBannersResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChannelBannersResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~ChannelBannersResource() {} - - - - /** - * Creates a new ChannelBannersResource_InsertMethod instance. - * @deprecated - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelBannersResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_) const; - - /** - * Creates a new ChannelBannersResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] _metadata_ The metadata object to insert. If this is NULL - * then do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelBannersResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const ChannelBannerResource* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_ - ) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChannelBannersResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChannelSectionsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChannelSectionsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~ChannelSectionsResource() {} - - - /** - * Creates a new ChannelSectionsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube channelSection ID - * for the resource that is being deleted. In a channelSection resource, - * the id property specifies the YouTube channelSection ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelSectionsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new ChannelSectionsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and contentDetails. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelSectionsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const ChannelSection& _content_) const; - - /** - * Creates a new ChannelSectionsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more channelSection resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a channelSection resource, the snippet property contains other - * properties, such as a display title for the channelSection. If you set - * part=snippet, the API response will also contain all of those nested - * properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelSectionsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new ChannelSectionsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and contentDetails. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelSectionsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const ChannelSection& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChannelSectionsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ChannelsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ChannelsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~ChannelsResource() {} - - - /** - * Creates a new ChannelsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more channel resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, statistics, topicDetails, and - * invideoPromotion. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a channel resource, the contentDetails property contains other - * properties, such as the uploads properties. As such, if you set - * part=contentDetails, the API response will also contain all of those - * nested properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more channel resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, statistics, topicDetails, and - * invideoPromotion. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a channel resource, the contentDetails property contains other - * properties, such as the uploads properties. As such, if you set - * part=contentDetails, the API response will also contain all of those - * nested properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - ChannelsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new ChannelsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are id and - * invideoPromotion. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ChannelsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Channel& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(ChannelsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class GuideCategoriesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - GuideCategoriesResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~GuideCategoriesResource() {} - - - /** - * Creates a new GuideCategoriesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more guideCategory resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id and snippet. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a guideCategory resource, the snippet property contains other - * properties, such as the category's title. If you set part=snippet, the - * API response will also contain all of those nested properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - GuideCategoriesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(GuideCategoriesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class I18nLanguagesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - I18nLanguagesResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~I18nLanguagesResource() {} - - - /** - * Creates a new I18nLanguagesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more i18nLanguage resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id and snippet. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - I18nLanguagesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(I18nLanguagesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class I18nRegionsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - I18nRegionsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~I18nRegionsResource() {} - - - /** - * Creates a new I18nRegionsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more i18nRegion resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id and snippet. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - I18nRegionsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(I18nRegionsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class LiveBroadcastsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - LiveBroadcastsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~LiveBroadcastsResource() {} - - - /** - * Creates a new LiveBroadcastsResource_BindMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the unique ID of the broadcast - * that is being bound to a video stream. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveBroadcast resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, contentDetails, and status. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_BindMethod* NewBindMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& part) const; - - /** - * Creates a new LiveBroadcastsResource_ControlMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube live broadcast ID - * that uniquely identifies the broadcast in which the slate is being - * updated. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveBroadcast resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, contentDetails, and status. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_ControlMethod* NewControlMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& part) const; - - /** - * Creates a new LiveBroadcastsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube live broadcast ID - * for the resource that is being deleted. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new LiveBroadcastsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, contentDetails, and status. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveBroadcast& _content_) const; - - /** - * Creates a new LiveBroadcastsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveBroadcast resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, contentDetails, and status. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveBroadcast resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, contentDetails, and status. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - LiveBroadcastsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new LiveBroadcastsResource_TransitionMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] broadcast_status The broadcastStatus parameter identifies - * the state to which the broadcast is changing. Note that to transition a - * broadcast to either the testing or live state, the status.streamStatus - * must be active for the stream that the broadcast is bound to. - * @param[in] id The id parameter specifies the unique ID of the broadcast - * that is transitioning to another status. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveBroadcast resource properties that the API response - * will include. The part names that you can include in the parameter - * value are id, snippet, contentDetails, and status. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_TransitionMethod* NewTransitionMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& broadcast_status, - const StringPiece& id, - const StringPiece& part) const; - - /** - * Creates a new LiveBroadcastsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, contentDetails, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. For example, a broadcast's privacy status is defined - * in the status part. As such, if your request is updating a private or - * unlisted broadcast, and the request's part parameter value includes the - * status part, the broadcast's privacy setting will be updated to - * whatever value the request body specifies. If the request body does not - * specify a value, the existing privacy setting will be removed and the - * broadcast will revert to the default privacy setting. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveBroadcastsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveBroadcast& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(LiveBroadcastsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class LiveStreamsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - LiveStreamsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~LiveStreamsResource() {} - - - /** - * Creates a new LiveStreamsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube live stream ID for - * the resource that is being deleted. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveStreamsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new LiveStreamsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, cdn, and status. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveStreamsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveStream& _content_) const; - - /** - * Creates a new LiveStreamsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveStream resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, cdn, and status. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveStreamsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more liveStream resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, cdn, and status. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - LiveStreamsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new LiveStreamsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part properties that you can include in the parameter value are id, - * snippet, cdn, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. If the request body does not specify a value for a - * mutable property, the existing value for that property will be removed. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - LiveStreamsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const LiveStream& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(LiveStreamsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class PlaylistItemsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - PlaylistItemsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~PlaylistItemsResource() {} - - - /** - * Creates a new PlaylistItemsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube playlist item ID - * for the playlist item that is being deleted. In a playlistItem - * resource, the id property specifies the playlist item's ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistItemsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new PlaylistItemsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, and status. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistItemsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const PlaylistItem& _content_) const; - - /** - * Creates a new PlaylistItemsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more playlistItem resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, and status. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a playlistItem resource, the snippet property contains numerous fields, - * including the title, description, position, and resourceId properties. - * As such, if you set part=snippet, the API response will contain all of - * those properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistItemsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more playlistItem resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, and status. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a playlistItem resource, the snippet property contains numerous fields, - * including the title, description, position, and resourceId properties. - * As such, if you set part=snippet, the API response will contain all of - * those properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - PlaylistItemsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new PlaylistItemsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. For example, a playlist item can specify a start time - * and end time, which identify the times portion of the video that should - * play when users watch the video in the playlist. If your request is - * updating a playlist item that sets these values, and the request's part - * parameter value includes the contentDetails part, the playlist item's - * start and end times will be updated to whatever value the request body - * specifies. If the request body does not specify values, the existing - * start and end times will be removed and replaced with the default - * settings. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistItemsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const PlaylistItem& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(PlaylistItemsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class PlaylistsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - PlaylistsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~PlaylistsResource() {} - - - /** - * Creates a new PlaylistsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube playlist ID for - * the playlist that is being deleted. In a playlist resource, the id - * property specifies the playlist's ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new PlaylistsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and status. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Playlist& _content_) const; - - /** - * Creates a new PlaylistsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more playlist resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, status, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a playlist resource, the snippet property contains properties like - * author, title, description, tags, and timeCreated. As such, if you set - * part=snippet, the API response will contain all of those properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more playlist resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, status, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a playlist resource, the snippet property contains properties like - * author, title, description, tags, and timeCreated. As such, if you set - * part=snippet, the API response will contain all of those properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - PlaylistsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new PlaylistsResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and status. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. For example, a playlist's privacy setting is contained - * in the status part. As such, if your request is updating a private - * playlist, and the request's part parameter value includes the status - * part, the playlist's privacy setting will be updated to whatever value - * the request body specifies. If the request body does not specify a - * value, the existing privacy setting will be removed and the playlist - * will revert to the default privacy setting. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - PlaylistsResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Playlist& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(PlaylistsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class SearchResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - SearchResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~SearchResource() {} - - - /** - * Creates a new SearchResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more search resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id and snippet. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a search result, the snippet property contains other properties that - * identify the result's title, description, and so forth. If you set - * part=snippet, the API response will also contain all of those nested - * properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SearchResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more search resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id and snippet. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a search result, the snippet property contains other properties that - * identify the result's title, description, and so forth. If you set - * part=snippet, the API response will also contain all of those nested - * properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - SearchResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(SearchResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class SubscriptionsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - SubscriptionsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~SubscriptionsResource() {} - - - /** - * Creates a new SubscriptionsResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube subscription ID - * for the resource that is being deleted. In a subscription resource, the - * id property specifies the YouTube subscription ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SubscriptionsResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new SubscriptionsResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet - * and contentDetails. - * @param[in] _content_ The data object to insert. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SubscriptionsResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Subscription& _content_) const; - - /** - * Creates a new SubscriptionsResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more subscription resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a subscription resource, the snippet property contains other - * properties, such as a display title for the subscription. If you set - * part=snippet, the API response will also contain all of those nested - * properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - SubscriptionsResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more subscription resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, and contentDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a subscription resource, the snippet property contains other - * properties, such as a display title for the subscription. If you set - * part=snippet, the API response will also contain all of those nested - * properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - SubscriptionsResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(SubscriptionsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class ThumbnailsResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - ThumbnailsResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~ThumbnailsResource() {} - - - /** - * Creates a new ThumbnailsResource_SetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] video_id The videoId parameter specifies a YouTube video ID - * for which the custom video thumbnail is being provided. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to set. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - ThumbnailsResource_SetMethod* NewSetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& video_id, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(ThumbnailsResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class VideoCategoriesResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - VideoCategoriesResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~VideoCategoriesResource() {} - - - /** - * Creates a new VideoCategoriesResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies the videoCategory resource - * parts that the API response will include. Supported values are id and - * snippet. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideoCategoriesResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(VideoCategoriesResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class VideosResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - VideosResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~VideosResource() {} - - - /** - * Creates a new VideosResource_DeleteMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube video ID for the - * resource that is being deleted. In a video resource, the id property - * specifies the video's ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_DeleteMethod* NewDeleteMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - /** - * Creates a new VideosResource_GetRatingMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies a comma-separated list of the - * YouTube video ID(s) for the resource(s) for which you are retrieving - * rating data. In a video resource, the id property specifies the video's - * ID. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_GetRatingMethod* NewGetRatingMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id) const; - - - /** - * Creates a new VideosResource_InsertMethod instance. - * @deprecated - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, - * player, processingDetails, recordingDetails, statistics, status, - * suggestions, and topicDetails. However, not all of those parts contain - * properties that can be set when setting or updating a video's metadata. - * For example, the statistics object encapsulates statistics that YouTube - * calculates for a video and does not contain values that you can set or - * modify. If the parameter value specifies a part that does not contain - * mutable values, that part will still be included in the API response. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new VideosResource_InsertMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, - * player, processingDetails, recordingDetails, statistics, status, - * suggestions, and topicDetails. However, not all of those parts contain - * properties that can be set when setting or updating a video's metadata. - * For example, the statistics object encapsulates statistics that YouTube - * calculates for a video and does not contain values that you can set or - * modify. If the parameter value specifies a part that does not contain - * mutable values, that part will still be included in the API response. - * @param[in] _metadata_ The metadata object to insert. If this is NULL - * then do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to insert. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_InsertMethod* NewInsertMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Video* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_ - ) const; - - /** - * Creates a new VideosResource_ListMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more video resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, fileDetails, liveStreamingDetails, - * localizations, player, processingDetails, recordingDetails, statistics, - * status, suggestions, and topicDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a video resource, the snippet property contains the channelId, title, - * description, tags, and categoryId properties. As such, if you set - * part=snippet, the API response will contain all of those properties. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_ListMethod* NewListMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a pager for iterating over incremental result pages. - * @param[in] _credential_ NULL credentials will not authorize the - * request. - * @param[in] part The part parameter specifies a comma-separated list of - * one or more video resource properties that the API response will - * include. The part names that you can include in the parameter value are - * id, snippet, contentDetails, fileDetails, liveStreamingDetails, - * localizations, player, processingDetails, recordingDetails, statistics, - * status, suggestions, and topicDetails. - * - * If the parameter identifies a property that contains child properties, - * the child properties will be included in the response. For example, in - * a video resource, the snippet property contains the channelId, title, - * description, tags, and categoryId properties. As such, if you set - * part=snippet, the API response will contain all of those properties. - * - * - * @see googleapis::googleapis::ServiceRequestPager - */ - VideosResource_ListMethodPager* NewListMethodPager( - client::AuthorizationCredential* _credential_, - const StringPiece& part) const; - - /** - * Creates a new VideosResource_RateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] id The id parameter specifies the YouTube video ID of the - * video that is being rated or having its rating removed. - * @param[in] rating Specifies the rating to record. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_RateMethod* NewRateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& id, - const StringPiece& rating) const; - - /** - * Creates a new VideosResource_UpdateMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] part The part parameter serves two purposes in this - * operation. It identifies the properties that the write operation will - * set as well as the properties that the API response will include. - * - * The part names that you can include in the parameter value are snippet, - * contentDetails, fileDetails, liveStreamingDetails, localizations, - * player, processingDetails, recordingDetails, statistics, status, - * suggestions, and topicDetails. - * - * Note that this method will override the existing values for all of the - * mutable properties that are contained in any parts that the parameter - * value specifies. For example, a video's privacy setting is contained in - * the status part. As such, if your request is updating a private video, - * and the request's part parameter value includes the status part, the - * video's privacy setting will be updated to whatever value the request - * body specifies. If the request body does not specify a value, the - * existing privacy setting will be removed and the video will revert to - * the default privacy setting. - * - * In addition, not all of those parts contain properties that can be set - * when setting or updating a video's metadata. For example, the - * statistics object encapsulates statistics that YouTube calculates for a - * video and does not contain values that you can set or modify. If the - * parameter value specifies a part that does not contain mutable values, - * that part will still be included in the API response. - * @param[in] _content_ The data object to update. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - VideosResource_UpdateMethod* NewUpdateMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& part, - const Video& _content_) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(VideosResource); - }; - - /** - * Acts as message factory for accessing data. - * - * @ingroup ServiceClass - */ - class WatermarksResource { - public: - /** - * Standard constructor. - * - * @param[in] service The service instance is used to bind to the - * methods created from this resource instance. This will be - * the service that methods are invoked on. - */ - WatermarksResource(YouTubeService* service); - - /** - * Standard destructor. - */ - ~WatermarksResource() {} - - - - /** - * Creates a new WatermarksResource_SetMethod instance. - * @deprecated - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] channel_id The channelId parameter specifies a YouTube - * channel ID for which the watermark is being provided. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - WatermarksResource_SetMethod* NewSetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& channel_id) const; - - /** - * Creates a new WatermarksResource_SetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] channel_id The channelId parameter specifies a YouTube - * channel ID for which the watermark is being provided. - * @param[in] _metadata_ The metadata object to set. If this is NULL then - * do not upload any metadata. - * @param[in] _media_content_type_ The content type of the data in the - * _media_content_reader_. - * @param[in] _media_content_reader_ The media content to set. If - * this is NULL then do not upload any media and ignore - * _media_content_type_. - * - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - WatermarksResource_SetMethod* NewSetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& channel_id, - const InvideoBranding* _metadata_, - const StringPiece& _media_content_type_, - client::DataReader* _media_content_reader_ - ) const; - - /** - * Creates a new WatermarksResource_UnsetMethod instance. - * - * @param[in] _credential_ Can be NULL. - * NULL credentials will not authorize the request. - * @param[in] channel_id The channelId parameter specifies a YouTube - * channel ID for which the watermark is being unset. - * @returns The caller should Execute the method instance, - * then destroy it when they are finished. - */ - WatermarksResource_UnsetMethod* NewUnsetMethod( - client::AuthorizationCredential* _credential_, - const StringPiece& channel_id) const; - - private: - YouTubeService* service_; - - DISALLOW_COPY_AND_ASSIGN(WatermarksResource); - }; + /** + * Creates a new WatermarksResource_UnsetMethod instance. + * + * @param[in] _credential_ Can be NULL. + * NULL credentials will not authorize the request. + * @param[in] channel_id The channelId parameter specifies a YouTube channel + * ID for which the watermark is being unset. + * @returns The caller should Execute the method instance, + * then destroy it when they are finished. + */ + WatermarksResource_UnsetMethod* NewUnsetMethod( + client::AuthorizationCredential* _credential_, + const StringPiece& channel_id) const; + + private: + YouTubeService* service_; + DISALLOW_COPY_AND_ASSIGN(WatermarksResource); + }; @@ -13678,6 +16280,16 @@ class YouTubeService : public client::ClientService { } + /** + * Gets the resource method factory. + * + * @return CaptionsResource for creating methods. + */ + const CaptionsResource& get_captions() const { + return captions_; + } + + /** * Gets the resource method factory. * @@ -13708,6 +16320,26 @@ class YouTubeService : public client::ClientService { } + /** + * Gets the resource method factory. + * + * @return CommentThreadsResource for creating methods. + */ + const CommentThreadsResource& get_comment_threads() const { + return comment_threads_; + } + + + /** + * Gets the resource method factory. + * + * @return CommentsResource for creating methods. + */ + const CommentsResource& get_comments() const { + return comments_; + } + + /** * Gets the resource method factory. * @@ -13808,6 +16440,16 @@ class YouTubeService : public client::ClientService { } + /** + * Gets the resource method factory. + * + * @return VideoAbuseReportReasonsResource for creating methods. + */ + const VideoAbuseReportReasonsResource& get_video_abuse_report_reasons() const { + return video_abuse_report_reasons_; + } + + /** * Gets the resource method factory. * @@ -13877,15 +16519,18 @@ class YouTubeService : public client::ClientService { static const StringPiece YOUTUBEPARTNER_CHANNEL_AUDIT; private: - SCOPES(); // Never instantiated. + SCOPES(); // Never instantiated. ~SCOPES(); // Never instantiated. }; private: ActivitiesResource activities_; + CaptionsResource captions_; ChannelBannersResource channel_banners_; ChannelSectionsResource channel_sections_; ChannelsResource channels_; + CommentThreadsResource comment_threads_; + CommentsResource comments_; GuideCategoriesResource guide_categories_; I18nLanguagesResource i18n_languages_; I18nRegionsResource i18n_regions_; @@ -13896,6 +16541,7 @@ class YouTubeService : public client::ClientService { SearchResource search_; SubscriptionsResource subscriptions_; ThumbnailsResource thumbnails_; + VideoAbuseReportReasonsResource video_abuse_report_reasons_; VideoCategoriesResource video_categories_; VideosResource videos_; WatermarksResource watermarks_; diff --git a/service_apis/youtube/google/youtube_api/youtube_api.h b/service_apis/youtube/google/youtube_api/youtube_api.h index c2cf927..c34655d 100644 --- a/service_apis/youtube/google/youtube_api/youtube_api.h +++ b/service_apis/youtube/google/youtube_api/youtube_api.h @@ -11,10 +11,10 @@ // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. -// This code was generated by google-apis-code-generator 1.5.0 -// Build date: 2015-01-14 17:53:03 UTC -// on: 2015-03-12, 20:35:33 UTC -// C++ generator version: +// This code was generated by google-apis-code-generator 1.5.1 +// Build date: 2015-03-26 20:30:19 UTC +// on: 2015-06-02, 17:00:10 UTC +// C++ generator version: 0.1.3 #ifndef GOOGLE_YOUTUBE_API_YOUTUBE_API_H_ #define GOOGLE_YOUTUBE_API_YOUTUBE_API_H_ @@ -40,6 +40,9 @@ #include "google/youtube_api/page_info.h" #include "google/youtube_api/token_pagination.h" #include "google/youtube_api/activity_list_response.h" +#include "google/youtube_api/caption_snippet.h" +#include "google/youtube_api/caption.h" +#include "google/youtube_api/caption_list_response.h" #include "google/youtube_api/ingestion_info.h" #include "google/youtube_api/cdn_settings.h" #include "google/youtube_api/channel_audit_details.h" @@ -67,12 +70,21 @@ #include "google/youtube_api/channel_topic_details.h" #include "google/youtube_api/channel.h" #include "google/youtube_api/channel_banner_resource.h" +#include "google/youtube_api/channel_id.h" #include "google/youtube_api/channel_list_response.h" #include "google/youtube_api/channel_section_content_details.h" #include "google/youtube_api/channel_section_localization.h" #include "google/youtube_api/channel_section_snippet.h" +#include "google/youtube_api/channel_section_targeting.h" #include "google/youtube_api/channel_section.h" #include "google/youtube_api/channel_section_list_response.h" +#include "google/youtube_api/comment_snippet.h" +#include "google/youtube_api/comment.h" +#include "google/youtube_api/comment_list_response.h" +#include "google/youtube_api/comment_thread_replies.h" +#include "google/youtube_api/comment_thread_snippet.h" +#include "google/youtube_api/comment_thread.h" +#include "google/youtube_api/comment_thread_list_response.h" #include "google/youtube_api/content_rating.h" #include "google/youtube_api/geo_point.h" #include "google/youtube_api/guide_category_snippet.h" @@ -88,11 +100,14 @@ #include "google/youtube_api/monitor_stream_info.h" #include "google/youtube_api/live_broadcast_content_details.h" #include "google/youtube_api/live_broadcast_snippet.h" +#include "google/youtube_api/live_broadcast_statistics.h" #include "google/youtube_api/live_broadcast_status.h" #include "google/youtube_api/live_broadcast.h" #include "google/youtube_api/live_broadcast_list_response.h" #include "google/youtube_api/live_stream_content_details.h" #include "google/youtube_api/live_stream_snippet.h" +#include "google/youtube_api/live_stream_configuration_issue.h" +#include "google/youtube_api/live_stream_health_status.h" #include "google/youtube_api/live_stream_status.h" #include "google/youtube_api/live_stream.h" #include "google/youtube_api/live_stream_list_response.h" @@ -140,6 +155,11 @@ #include "google/youtube_api/video_suggestions.h" #include "google/youtube_api/video_topic_details.h" #include "google/youtube_api/video.h" +#include "google/youtube_api/video_abuse_report.h" +#include "google/youtube_api/video_abuse_report_secondary_reason.h" +#include "google/youtube_api/video_abuse_report_reason_snippet.h" +#include "google/youtube_api/video_abuse_report_reason.h" +#include "google/youtube_api/video_abuse_report_reason_list_response.h" #include "google/youtube_api/video_category_snippet.h" #include "google/youtube_api/video_category.h" #include "google/youtube_api/video_category_list_response.h"