diff --git a/api_names_out.yaml b/api_names_out.yaml index 6b841d7ad..7e951af0d 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -5865,6 +5865,7 @@ "/androidenterprise:v1/AdministratorWebTokenSpec/storeBuilder": store_builder "/androidenterprise:v1/AdministratorWebTokenSpec/webApps": web_apps "/androidenterprise:v1/AdministratorWebTokenSpecPlaySearch": administrator_web_token_spec_play_search +"/androidenterprise:v1/AdministratorWebTokenSpecPlaySearch/approveApps": approve_apps "/androidenterprise:v1/AdministratorWebTokenSpecPlaySearch/enabled": enabled "/androidenterprise:v1/AdministratorWebTokenSpecPrivateApps": administrator_web_token_spec_private_apps "/androidenterprise:v1/AdministratorWebTokenSpecPrivateApps/enabled": enabled @@ -12902,6 +12903,7 @@ "/calendar:v3/calendar.events.delete/calendarId": calendar_id "/calendar:v3/calendar.events.delete/eventId": event_id "/calendar:v3/calendar.events.delete/sendNotifications": send_notifications +"/calendar:v3/calendar.events.delete/sendUpdates": send_updates "/calendar:v3/calendar.events.get": get_event "/calendar:v3/calendar.events.get/alwaysIncludeEmail": always_include_email "/calendar:v3/calendar.events.get/calendarId": calendar_id @@ -12917,6 +12919,7 @@ "/calendar:v3/calendar.events.insert/conferenceDataVersion": conference_data_version "/calendar:v3/calendar.events.insert/maxAttendees": max_attendees "/calendar:v3/calendar.events.insert/sendNotifications": send_notifications +"/calendar:v3/calendar.events.insert/sendUpdates": send_updates "/calendar:v3/calendar.events.insert/supportsAttachments": supports_attachments "/calendar:v3/calendar.events.instances": list_event_instances "/calendar:v3/calendar.events.instances/alwaysIncludeEmail": always_include_email @@ -12954,6 +12957,7 @@ "/calendar:v3/calendar.events.move/destination": destination "/calendar:v3/calendar.events.move/eventId": event_id "/calendar:v3/calendar.events.move/sendNotifications": send_notifications +"/calendar:v3/calendar.events.move/sendUpdates": send_updates "/calendar:v3/calendar.events.patch": patch_event "/calendar:v3/calendar.events.patch/alwaysIncludeEmail": always_include_email "/calendar:v3/calendar.events.patch/calendarId": calendar_id @@ -12961,10 +12965,12 @@ "/calendar:v3/calendar.events.patch/eventId": event_id "/calendar:v3/calendar.events.patch/maxAttendees": max_attendees "/calendar:v3/calendar.events.patch/sendNotifications": send_notifications +"/calendar:v3/calendar.events.patch/sendUpdates": send_updates "/calendar:v3/calendar.events.patch/supportsAttachments": supports_attachments "/calendar:v3/calendar.events.quickAdd": quick_add_event "/calendar:v3/calendar.events.quickAdd/calendarId": calendar_id "/calendar:v3/calendar.events.quickAdd/sendNotifications": send_notifications +"/calendar:v3/calendar.events.quickAdd/sendUpdates": send_updates "/calendar:v3/calendar.events.quickAdd/text": text "/calendar:v3/calendar.events.update": update_event "/calendar:v3/calendar.events.update/alwaysIncludeEmail": always_include_email @@ -12973,6 +12979,7 @@ "/calendar:v3/calendar.events.update/eventId": event_id "/calendar:v3/calendar.events.update/maxAttendees": max_attendees "/calendar:v3/calendar.events.update/sendNotifications": send_notifications +"/calendar:v3/calendar.events.update/sendUpdates": send_updates "/calendar:v3/calendar.events.update/supportsAttachments": supports_attachments "/calendar:v3/calendar.events.watch": watch_event "/calendar:v3/calendar.events.watch/alwaysIncludeEmail": always_include_email @@ -13989,6 +13996,101 @@ "/classroom:v1/fields": fields "/classroom:v1/key": key "/classroom:v1/quotaUser": quota_user +"/cloudasset:v1beta1/Asset": asset +"/cloudasset:v1beta1/Asset/assetType": asset_type +"/cloudasset:v1beta1/Asset/iamPolicy": iam_policy +"/cloudasset:v1beta1/Asset/name": name +"/cloudasset:v1beta1/Asset/resource": resource +"/cloudasset:v1beta1/AuditConfig": audit_config +"/cloudasset:v1beta1/AuditConfig/auditLogConfigs": audit_log_configs +"/cloudasset:v1beta1/AuditConfig/auditLogConfigs/audit_log_config": audit_log_config +"/cloudasset:v1beta1/AuditConfig/service": service +"/cloudasset:v1beta1/AuditLogConfig": audit_log_config +"/cloudasset:v1beta1/AuditLogConfig/exemptedMembers": exempted_members +"/cloudasset:v1beta1/AuditLogConfig/exemptedMembers/exempted_member": exempted_member +"/cloudasset:v1beta1/AuditLogConfig/logType": log_type +"/cloudasset:v1beta1/BatchGetAssetsHistoryResponse": batch_get_assets_history_response +"/cloudasset:v1beta1/BatchGetAssetsHistoryResponse/assets": assets +"/cloudasset:v1beta1/BatchGetAssetsHistoryResponse/assets/asset": asset +"/cloudasset:v1beta1/Binding": binding +"/cloudasset:v1beta1/Binding/condition": condition +"/cloudasset:v1beta1/Binding/members": members +"/cloudasset:v1beta1/Binding/members/member": member +"/cloudasset:v1beta1/Binding/role": role +"/cloudasset:v1beta1/ExportAssetsRequest": export_assets_request +"/cloudasset:v1beta1/ExportAssetsRequest/assetTypes": asset_types +"/cloudasset:v1beta1/ExportAssetsRequest/assetTypes/asset_type": asset_type +"/cloudasset:v1beta1/ExportAssetsRequest/contentType": content_type +"/cloudasset:v1beta1/ExportAssetsRequest/outputConfig": output_config +"/cloudasset:v1beta1/ExportAssetsRequest/readTime": read_time +"/cloudasset:v1beta1/Expr": expr +"/cloudasset:v1beta1/Expr/description": description +"/cloudasset:v1beta1/Expr/expression": expression +"/cloudasset:v1beta1/Expr/location": location +"/cloudasset:v1beta1/Expr/title": title +"/cloudasset:v1beta1/GcsDestination": gcs_destination +"/cloudasset:v1beta1/GcsDestination/uri": uri +"/cloudasset:v1beta1/Operation": operation +"/cloudasset:v1beta1/Operation/done": done +"/cloudasset:v1beta1/Operation/error": error +"/cloudasset:v1beta1/Operation/metadata": metadata +"/cloudasset:v1beta1/Operation/metadata/metadatum": metadatum +"/cloudasset:v1beta1/Operation/name": name +"/cloudasset:v1beta1/Operation/response": response +"/cloudasset:v1beta1/Operation/response/response": response +"/cloudasset:v1beta1/OutputConfig": output_config +"/cloudasset:v1beta1/OutputConfig/gcsDestination": gcs_destination +"/cloudasset:v1beta1/Policy": policy +"/cloudasset:v1beta1/Policy/auditConfigs": audit_configs +"/cloudasset:v1beta1/Policy/auditConfigs/audit_config": audit_config +"/cloudasset:v1beta1/Policy/bindings": bindings +"/cloudasset:v1beta1/Policy/bindings/binding": binding +"/cloudasset:v1beta1/Policy/etag": etag +"/cloudasset:v1beta1/Policy/version": version +"/cloudasset:v1beta1/Resource": resource +"/cloudasset:v1beta1/Resource/data": data +"/cloudasset:v1beta1/Resource/data/datum": datum +"/cloudasset:v1beta1/Resource/discoveryDocumentUri": discovery_document_uri +"/cloudasset:v1beta1/Resource/discoveryName": discovery_name +"/cloudasset:v1beta1/Resource/parent": parent +"/cloudasset:v1beta1/Resource/resourceUrl": resource_url +"/cloudasset:v1beta1/Resource/version": version +"/cloudasset:v1beta1/Status": status +"/cloudasset:v1beta1/Status/code": code +"/cloudasset:v1beta1/Status/details": details +"/cloudasset:v1beta1/Status/details/detail": detail +"/cloudasset:v1beta1/Status/details/detail/detail": detail +"/cloudasset:v1beta1/Status/message": message +"/cloudasset:v1beta1/TemporalAsset": temporal_asset +"/cloudasset:v1beta1/TemporalAsset/asset": asset +"/cloudasset:v1beta1/TemporalAsset/deleted": deleted +"/cloudasset:v1beta1/TemporalAsset/window": window +"/cloudasset:v1beta1/TimeWindow": time_window +"/cloudasset:v1beta1/TimeWindow/endTime": end_time +"/cloudasset:v1beta1/TimeWindow/startTime": start_time +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory": batch_organization_get_assets_history +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory/assetNames": asset_names +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory/contentType": content_type +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory/parent": parent +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory/readTimeWindow.endTime": read_time_window_end_time +"/cloudasset:v1beta1/cloudasset.organizations.batchGetAssetsHistory/readTimeWindow.startTime": read_time_window_start_time +"/cloudasset:v1beta1/cloudasset.organizations.exportAssets": export_organization_assets +"/cloudasset:v1beta1/cloudasset.organizations.exportAssets/parent": parent +"/cloudasset:v1beta1/cloudasset.organizations.operations.get": get_organization_operation +"/cloudasset:v1beta1/cloudasset.organizations.operations.get/name": name +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory": batch_project_get_assets_history +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory/assetNames": asset_names +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory/contentType": content_type +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory/parent": parent +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory/readTimeWindow.endTime": read_time_window_end_time +"/cloudasset:v1beta1/cloudasset.projects.batchGetAssetsHistory/readTimeWindow.startTime": read_time_window_start_time +"/cloudasset:v1beta1/cloudasset.projects.exportAssets": export_project_assets +"/cloudasset:v1beta1/cloudasset.projects.exportAssets/parent": parent +"/cloudasset:v1beta1/cloudasset.projects.operations.get": get_project_operation +"/cloudasset:v1beta1/cloudasset.projects.operations.get/name": name +"/cloudasset:v1beta1/fields": fields +"/cloudasset:v1beta1/key": key +"/cloudasset:v1beta1/quotaUser": quota_user "/cloudbilling:v1/AggregationInfo": aggregation_info "/cloudbilling:v1/AggregationInfo/aggregationCount": aggregation_count "/cloudbilling:v1/AggregationInfo/aggregationInterval": aggregation_interval @@ -62436,6 +62538,7 @@ "/firebasedynamiclinks:v1/CreateManagedShortLinkRequest/dynamicLinkInfo": dynamic_link_info "/firebasedynamiclinks:v1/CreateManagedShortLinkRequest/longDynamicLink": long_dynamic_link "/firebasedynamiclinks:v1/CreateManagedShortLinkRequest/name": name +"/firebasedynamiclinks:v1/CreateManagedShortLinkRequest/sdkVersion": sdk_version "/firebasedynamiclinks:v1/CreateManagedShortLinkRequest/suffix": suffix "/firebasedynamiclinks:v1/CreateManagedShortLinkResponse": create_managed_short_link_response "/firebasedynamiclinks:v1/CreateManagedShortLinkResponse/managedShortLink": managed_short_link @@ -62445,6 +62548,7 @@ "/firebasedynamiclinks:v1/CreateShortDynamicLinkRequest": create_short_dynamic_link_request "/firebasedynamiclinks:v1/CreateShortDynamicLinkRequest/dynamicLinkInfo": dynamic_link_info "/firebasedynamiclinks:v1/CreateShortDynamicLinkRequest/longDynamicLink": long_dynamic_link +"/firebasedynamiclinks:v1/CreateShortDynamicLinkRequest/sdkVersion": sdk_version "/firebasedynamiclinks:v1/CreateShortDynamicLinkRequest/suffix": suffix "/firebasedynamiclinks:v1/CreateShortDynamicLinkResponse": create_short_dynamic_link_response "/firebasedynamiclinks:v1/CreateShortDynamicLinkResponse/previewLink": preview_link @@ -62509,6 +62613,7 @@ "/firebasedynamiclinks:v1/GetIosReopenAttributionRequest": get_ios_reopen_attribution_request "/firebasedynamiclinks:v1/GetIosReopenAttributionRequest/bundleId": bundle_id "/firebasedynamiclinks:v1/GetIosReopenAttributionRequest/requestedLink": requested_link +"/firebasedynamiclinks:v1/GetIosReopenAttributionRequest/sdkVersion": sdk_version "/firebasedynamiclinks:v1/GetIosReopenAttributionResponse": get_ios_reopen_attribution_response "/firebasedynamiclinks:v1/GetIosReopenAttributionResponse/deepLink": deep_link "/firebasedynamiclinks:v1/GetIosReopenAttributionResponse/invitationId": invitation_id @@ -62556,6 +62661,7 @@ "/firebasedynamiclinks:v1/firebasedynamiclinks.getLinkStats": get_link_stats "/firebasedynamiclinks:v1/firebasedynamiclinks.getLinkStats/durationDays": duration_days "/firebasedynamiclinks:v1/firebasedynamiclinks.getLinkStats/dynamicLink": dynamic_link +"/firebasedynamiclinks:v1/firebasedynamiclinks.getLinkStats/sdkVersion": sdk_version "/firebasedynamiclinks:v1/firebasedynamiclinks.managedShortLinks.create": create_managed_short_link "/firebasedynamiclinks:v1/firebasedynamiclinks.shortLinks.create": create_short_link_short_dynamic_link "/firebasedynamiclinks:v1/key": key @@ -63216,10 +63322,17 @@ "/firestore:v1beta2/firestore.projects.databases.collectionGroups.fields.patch": patch_project_database_collection_group_field "/firestore:v1beta2/firestore.projects.databases.collectionGroups.fields.patch/name": name "/firestore:v1beta2/firestore.projects.databases.collectionGroups.fields.patch/updateMask": update_mask +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.create": create_project_database_collection_group_index +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.create/parent": parent "/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.delete": delete_project_database_collection_group_index "/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.delete/name": name "/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.get": get_project_database_collection_group_index "/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.get/name": name +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.list": list_project_database_collection_group_indexes +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.list/filter": filter +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.list/pageSize": page_size +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.list/pageToken": page_token +"/firestore:v1beta2/firestore.projects.databases.collectionGroups.indexes.list/parent": parent "/firestore:v1beta2/key": key "/firestore:v1beta2/quotaUser": quota_user "/fitness:v1/AggregateBucket": aggregate_bucket @@ -78272,6 +78385,705 @@ "/servicemanagement:v1/servicemanagement.services.testIamPermissions/resource": resource "/servicemanagement:v1/servicemanagement.services.undelete": undelete_service "/servicemanagement:v1/servicemanagement.services.undelete/serviceName": service_name +"/servicenetworking:v1/AddSubnetworkResponse": add_subnetwork_response +"/servicenetworking:v1/AddSubnetworkResponse/ipCidrRange": ip_cidr_range +"/servicenetworking:v1/AddSubnetworkResponse/name": name +"/servicenetworking:v1/Api": api +"/servicenetworking:v1/Api/methods": methods_prop +"/servicenetworking:v1/Api/methods/methods_prop": methods_prop +"/servicenetworking:v1/Api/mixins": mixins +"/servicenetworking:v1/Api/mixins/mixin": mixin +"/servicenetworking:v1/Api/name": name +"/servicenetworking:v1/Api/options": options +"/servicenetworking:v1/Api/options/option": option +"/servicenetworking:v1/Api/sourceContext": source_context +"/servicenetworking:v1/Api/syntax": syntax +"/servicenetworking:v1/Api/version": version +"/servicenetworking:v1/AuthProvider": auth_provider +"/servicenetworking:v1/AuthProvider/audiences": audiences +"/servicenetworking:v1/AuthProvider/authorizationUrl": authorization_url +"/servicenetworking:v1/AuthProvider/id": id +"/servicenetworking:v1/AuthProvider/issuer": issuer +"/servicenetworking:v1/AuthProvider/jwksUri": jwks_uri +"/servicenetworking:v1/AuthRequirement": auth_requirement +"/servicenetworking:v1/AuthRequirement/audiences": audiences +"/servicenetworking:v1/AuthRequirement/providerId": provider_id +"/servicenetworking:v1/Authentication": authentication +"/servicenetworking:v1/Authentication/providers": providers +"/servicenetworking:v1/Authentication/providers/provider": provider +"/servicenetworking:v1/Authentication/rules": rules +"/servicenetworking:v1/Authentication/rules/rule": rule +"/servicenetworking:v1/AuthenticationRule": authentication_rule +"/servicenetworking:v1/AuthenticationRule/allowWithoutCredential": allow_without_credential +"/servicenetworking:v1/AuthenticationRule/oauth": oauth +"/servicenetworking:v1/AuthenticationRule/requirements": requirements +"/servicenetworking:v1/AuthenticationRule/requirements/requirement": requirement +"/servicenetworking:v1/AuthenticationRule/selector": selector +"/servicenetworking:v1/AuthorizationConfig": authorization_config +"/servicenetworking:v1/AuthorizationConfig/provider": provider +"/servicenetworking:v1/Backend": backend +"/servicenetworking:v1/Backend/rules": rules +"/servicenetworking:v1/Backend/rules/rule": rule +"/servicenetworking:v1/BackendRule": backend_rule +"/servicenetworking:v1/BackendRule/address": address +"/servicenetworking:v1/BackendRule/deadline": deadline +"/servicenetworking:v1/BackendRule/minDeadline": min_deadline +"/servicenetworking:v1/BackendRule/selector": selector +"/servicenetworking:v1/Billing": billing +"/servicenetworking:v1/Billing/consumerDestinations": consumer_destinations +"/servicenetworking:v1/Billing/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1/BillingDestination": billing_destination +"/servicenetworking:v1/BillingDestination/metrics": metrics +"/servicenetworking:v1/BillingDestination/metrics/metric": metric +"/servicenetworking:v1/BillingDestination/monitoredResource": monitored_resource +"/servicenetworking:v1/CancelOperationRequest": cancel_operation_request +"/servicenetworking:v1/Context": context +"/servicenetworking:v1/Context/rules": rules +"/servicenetworking:v1/Context/rules/rule": rule +"/servicenetworking:v1/ContextRule": context_rule +"/servicenetworking:v1/ContextRule/allowedRequestExtensions": allowed_request_extensions +"/servicenetworking:v1/ContextRule/allowedRequestExtensions/allowed_request_extension": allowed_request_extension +"/servicenetworking:v1/ContextRule/allowedResponseExtensions": allowed_response_extensions +"/servicenetworking:v1/ContextRule/allowedResponseExtensions/allowed_response_extension": allowed_response_extension +"/servicenetworking:v1/ContextRule/provided": provided +"/servicenetworking:v1/ContextRule/provided/provided": provided +"/servicenetworking:v1/ContextRule/requested": requested +"/servicenetworking:v1/ContextRule/requested/requested": requested +"/servicenetworking:v1/ContextRule/selector": selector +"/servicenetworking:v1/Control": control +"/servicenetworking:v1/Control/environment": environment +"/servicenetworking:v1/CustomError": custom_error +"/servicenetworking:v1/CustomError/rules": rules +"/servicenetworking:v1/CustomError/rules/rule": rule +"/servicenetworking:v1/CustomError/types": types +"/servicenetworking:v1/CustomError/types/type": type +"/servicenetworking:v1/CustomErrorRule": custom_error_rule +"/servicenetworking:v1/CustomErrorRule/isErrorType": is_error_type +"/servicenetworking:v1/CustomErrorRule/selector": selector +"/servicenetworking:v1/CustomHttpPattern": custom_http_pattern +"/servicenetworking:v1/CustomHttpPattern/kind": kind +"/servicenetworking:v1/CustomHttpPattern/path": path +"/servicenetworking:v1/Documentation": documentation +"/servicenetworking:v1/Documentation/documentationRootUrl": documentation_root_url +"/servicenetworking:v1/Documentation/overview": overview +"/servicenetworking:v1/Documentation/pages": pages +"/servicenetworking:v1/Documentation/pages/page": page +"/servicenetworking:v1/Documentation/rules": rules +"/servicenetworking:v1/Documentation/rules/rule": rule +"/servicenetworking:v1/Documentation/summary": summary +"/servicenetworking:v1/DocumentationRule": documentation_rule +"/servicenetworking:v1/DocumentationRule/deprecationDescription": deprecation_description +"/servicenetworking:v1/DocumentationRule/description": description +"/servicenetworking:v1/DocumentationRule/selector": selector +"/servicenetworking:v1/Empty": empty +"/servicenetworking:v1/Endpoint": endpoint +"/servicenetworking:v1/Endpoint/aliases": aliases +"/servicenetworking:v1/Endpoint/aliases/alias": alias +"/servicenetworking:v1/Endpoint/allowCors": allow_cors +"/servicenetworking:v1/Endpoint/features": features +"/servicenetworking:v1/Endpoint/features/feature": feature +"/servicenetworking:v1/Endpoint/name": name +"/servicenetworking:v1/Endpoint/target": target +"/servicenetworking:v1/Enum": enum +"/servicenetworking:v1/Enum/enumvalue": enumvalue +"/servicenetworking:v1/Enum/enumvalue/enumvalue": enumvalue +"/servicenetworking:v1/Enum/name": name +"/servicenetworking:v1/Enum/options": options +"/servicenetworking:v1/Enum/options/option": option +"/servicenetworking:v1/Enum/sourceContext": source_context +"/servicenetworking:v1/Enum/syntax": syntax +"/servicenetworking:v1/EnumValue": enum_value +"/servicenetworking:v1/EnumValue/name": name +"/servicenetworking:v1/EnumValue/number": number +"/servicenetworking:v1/EnumValue/options": options +"/servicenetworking:v1/EnumValue/options/option": option +"/servicenetworking:v1/Experimental": experimental +"/servicenetworking:v1/Experimental/authorization": authorization +"/servicenetworking:v1/Field": field +"/servicenetworking:v1/Field/cardinality": cardinality +"/servicenetworking:v1/Field/defaultValue": default_value +"/servicenetworking:v1/Field/jsonName": json_name +"/servicenetworking:v1/Field/kind": kind +"/servicenetworking:v1/Field/name": name +"/servicenetworking:v1/Field/number": number +"/servicenetworking:v1/Field/oneofIndex": oneof_index +"/servicenetworking:v1/Field/options": options +"/servicenetworking:v1/Field/options/option": option +"/servicenetworking:v1/Field/packed": packed +"/servicenetworking:v1/Field/typeUrl": type_url +"/servicenetworking:v1/Http": http +"/servicenetworking:v1/Http/fullyDecodeReservedExpansion": fully_decode_reserved_expansion +"/servicenetworking:v1/Http/rules": rules +"/servicenetworking:v1/Http/rules/rule": rule +"/servicenetworking:v1/HttpRule": http_rule +"/servicenetworking:v1/HttpRule/additionalBindings": additional_bindings +"/servicenetworking:v1/HttpRule/additionalBindings/additional_binding": additional_binding +"/servicenetworking:v1/HttpRule/body": body +"/servicenetworking:v1/HttpRule/custom": custom +"/servicenetworking:v1/HttpRule/delete": delete +"/servicenetworking:v1/HttpRule/get": get +"/servicenetworking:v1/HttpRule/patch": patch +"/servicenetworking:v1/HttpRule/post": post +"/servicenetworking:v1/HttpRule/put": put +"/servicenetworking:v1/HttpRule/responseBody": response_body +"/servicenetworking:v1/HttpRule/selector": selector +"/servicenetworking:v1/LabelDescriptor": label_descriptor +"/servicenetworking:v1/LabelDescriptor/description": description +"/servicenetworking:v1/LabelDescriptor/key": key +"/servicenetworking:v1/LabelDescriptor/valueType": value_type +"/servicenetworking:v1/ListOperationsResponse": list_operations_response +"/servicenetworking:v1/ListOperationsResponse/nextPageToken": next_page_token +"/servicenetworking:v1/ListOperationsResponse/operations": operations +"/servicenetworking:v1/ListOperationsResponse/operations/operation": operation +"/servicenetworking:v1/LogDescriptor": log_descriptor +"/servicenetworking:v1/LogDescriptor/description": description +"/servicenetworking:v1/LogDescriptor/displayName": display_name +"/servicenetworking:v1/LogDescriptor/labels": labels +"/servicenetworking:v1/LogDescriptor/labels/label": label +"/servicenetworking:v1/LogDescriptor/name": name +"/servicenetworking:v1/Logging": logging +"/servicenetworking:v1/Logging/consumerDestinations": consumer_destinations +"/servicenetworking:v1/Logging/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1/Logging/producerDestinations": producer_destinations +"/servicenetworking:v1/Logging/producerDestinations/producer_destination": producer_destination +"/servicenetworking:v1/LoggingDestination": logging_destination +"/servicenetworking:v1/LoggingDestination/logs": logs +"/servicenetworking:v1/LoggingDestination/logs/log": log +"/servicenetworking:v1/LoggingDestination/monitoredResource": monitored_resource +"/servicenetworking:v1/Method": method_prop +"/servicenetworking:v1/Method/name": name +"/servicenetworking:v1/Method/options": options +"/servicenetworking:v1/Method/options/option": option +"/servicenetworking:v1/Method/requestStreaming": request_streaming +"/servicenetworking:v1/Method/requestTypeUrl": request_type_url +"/servicenetworking:v1/Method/responseStreaming": response_streaming +"/servicenetworking:v1/Method/responseTypeUrl": response_type_url +"/servicenetworking:v1/Method/syntax": syntax +"/servicenetworking:v1/MetricDescriptor": metric_descriptor +"/servicenetworking:v1/MetricDescriptor/description": description +"/servicenetworking:v1/MetricDescriptor/displayName": display_name +"/servicenetworking:v1/MetricDescriptor/labels": labels +"/servicenetworking:v1/MetricDescriptor/labels/label": label +"/servicenetworking:v1/MetricDescriptor/metadata": metadata +"/servicenetworking:v1/MetricDescriptor/metricKind": metric_kind +"/servicenetworking:v1/MetricDescriptor/name": name +"/servicenetworking:v1/MetricDescriptor/type": type +"/servicenetworking:v1/MetricDescriptor/unit": unit +"/servicenetworking:v1/MetricDescriptor/valueType": value_type +"/servicenetworking:v1/MetricDescriptorMetadata": metric_descriptor_metadata +"/servicenetworking:v1/MetricDescriptorMetadata/ingestDelay": ingest_delay +"/servicenetworking:v1/MetricDescriptorMetadata/launchStage": launch_stage +"/servicenetworking:v1/MetricDescriptorMetadata/samplePeriod": sample_period +"/servicenetworking:v1/MetricRule": metric_rule +"/servicenetworking:v1/MetricRule/metricCosts": metric_costs +"/servicenetworking:v1/MetricRule/metricCosts/metric_cost": metric_cost +"/servicenetworking:v1/MetricRule/selector": selector +"/servicenetworking:v1/Mixin": mixin +"/servicenetworking:v1/Mixin/name": name +"/servicenetworking:v1/Mixin/root": root +"/servicenetworking:v1/MonitoredResourceDescriptor": monitored_resource_descriptor +"/servicenetworking:v1/MonitoredResourceDescriptor/description": description +"/servicenetworking:v1/MonitoredResourceDescriptor/displayName": display_name +"/servicenetworking:v1/MonitoredResourceDescriptor/labels": labels +"/servicenetworking:v1/MonitoredResourceDescriptor/labels/label": label +"/servicenetworking:v1/MonitoredResourceDescriptor/name": name +"/servicenetworking:v1/MonitoredResourceDescriptor/type": type +"/servicenetworking:v1/Monitoring": monitoring +"/servicenetworking:v1/Monitoring/consumerDestinations": consumer_destinations +"/servicenetworking:v1/Monitoring/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1/Monitoring/producerDestinations": producer_destinations +"/servicenetworking:v1/Monitoring/producerDestinations/producer_destination": producer_destination +"/servicenetworking:v1/MonitoringDestination": monitoring_destination +"/servicenetworking:v1/MonitoringDestination/metrics": metrics +"/servicenetworking:v1/MonitoringDestination/metrics/metric": metric +"/servicenetworking:v1/MonitoringDestination/monitoredResource": monitored_resource +"/servicenetworking:v1/OAuthRequirements": o_auth_requirements +"/servicenetworking:v1/OAuthRequirements/canonicalScopes": canonical_scopes +"/servicenetworking:v1/Operation": operation +"/servicenetworking:v1/Operation/done": done +"/servicenetworking:v1/Operation/error": error +"/servicenetworking:v1/Operation/metadata": metadata +"/servicenetworking:v1/Operation/metadata/metadatum": metadatum +"/servicenetworking:v1/Operation/name": name +"/servicenetworking:v1/Operation/response": response +"/servicenetworking:v1/Operation/response/response": response +"/servicenetworking:v1/Option": option +"/servicenetworking:v1/Option/name": name +"/servicenetworking:v1/Option/value": value +"/servicenetworking:v1/Option/value/value": value +"/servicenetworking:v1/Page": page +"/servicenetworking:v1/Page/content": content +"/servicenetworking:v1/Page/name": name +"/servicenetworking:v1/Page/subpages": subpages +"/servicenetworking:v1/Page/subpages/subpage": subpage +"/servicenetworking:v1/Quota": quota +"/servicenetworking:v1/Quota/limits": limits +"/servicenetworking:v1/Quota/limits/limit": limit +"/servicenetworking:v1/Quota/metricRules": metric_rules +"/servicenetworking:v1/Quota/metricRules/metric_rule": metric_rule +"/servicenetworking:v1/QuotaLimit": quota_limit +"/servicenetworking:v1/QuotaLimit/defaultLimit": default_limit +"/servicenetworking:v1/QuotaLimit/description": description +"/servicenetworking:v1/QuotaLimit/displayName": display_name +"/servicenetworking:v1/QuotaLimit/duration": duration +"/servicenetworking:v1/QuotaLimit/freeTier": free_tier +"/servicenetworking:v1/QuotaLimit/maxLimit": max_limit +"/servicenetworking:v1/QuotaLimit/metric": metric +"/servicenetworking:v1/QuotaLimit/name": name +"/servicenetworking:v1/QuotaLimit/unit": unit +"/servicenetworking:v1/QuotaLimit/values": values +"/servicenetworking:v1/QuotaLimit/values/value": value +"/servicenetworking:v1/Service": service +"/servicenetworking:v1/Service/apis": apis +"/servicenetworking:v1/Service/apis/api": api +"/servicenetworking:v1/Service/authentication": authentication +"/servicenetworking:v1/Service/backend": backend +"/servicenetworking:v1/Service/billing": billing +"/servicenetworking:v1/Service/configVersion": config_version +"/servicenetworking:v1/Service/context": context +"/servicenetworking:v1/Service/control": control +"/servicenetworking:v1/Service/customError": custom_error +"/servicenetworking:v1/Service/documentation": documentation +"/servicenetworking:v1/Service/endpoints": endpoints +"/servicenetworking:v1/Service/endpoints/endpoint": endpoint +"/servicenetworking:v1/Service/enums": enums +"/servicenetworking:v1/Service/enums/enum": enum +"/servicenetworking:v1/Service/experimental": experimental +"/servicenetworking:v1/Service/http": http +"/servicenetworking:v1/Service/id": id +"/servicenetworking:v1/Service/logging": logging +"/servicenetworking:v1/Service/logs": logs +"/servicenetworking:v1/Service/logs/log": log +"/servicenetworking:v1/Service/metrics": metrics +"/servicenetworking:v1/Service/metrics/metric": metric +"/servicenetworking:v1/Service/monitoredResources": monitored_resources +"/servicenetworking:v1/Service/monitoredResources/monitored_resource": monitored_resource +"/servicenetworking:v1/Service/monitoring": monitoring +"/servicenetworking:v1/Service/name": name +"/servicenetworking:v1/Service/producerProjectId": producer_project_id +"/servicenetworking:v1/Service/quota": quota +"/servicenetworking:v1/Service/sourceInfo": source_info +"/servicenetworking:v1/Service/systemParameters": system_parameters +"/servicenetworking:v1/Service/systemTypes": system_types +"/servicenetworking:v1/Service/systemTypes/system_type": system_type +"/servicenetworking:v1/Service/title": title +"/servicenetworking:v1/Service/types": types +"/servicenetworking:v1/Service/types/type": type +"/servicenetworking:v1/Service/usage": usage +"/servicenetworking:v1/SourceContext": source_context +"/servicenetworking:v1/SourceContext/fileName": file_name +"/servicenetworking:v1/SourceInfo": source_info +"/servicenetworking:v1/SourceInfo/sourceFiles": source_files +"/servicenetworking:v1/SourceInfo/sourceFiles/source_file": source_file +"/servicenetworking:v1/SourceInfo/sourceFiles/source_file/source_file": source_file +"/servicenetworking:v1/Status": status +"/servicenetworking:v1/Status/code": code +"/servicenetworking:v1/Status/details": details +"/servicenetworking:v1/Status/details/detail": detail +"/servicenetworking:v1/Status/details/detail/detail": detail +"/servicenetworking:v1/Status/message": message +"/servicenetworking:v1/Subnetwork": subnetwork +"/servicenetworking:v1/Subnetwork/ipCidrRange": ip_cidr_range +"/servicenetworking:v1/Subnetwork/name": name +"/servicenetworking:v1/SystemParameter": system_parameter +"/servicenetworking:v1/SystemParameter/httpHeader": http_header +"/servicenetworking:v1/SystemParameter/name": name +"/servicenetworking:v1/SystemParameter/urlQueryParameter": url_query_parameter +"/servicenetworking:v1/SystemParameterRule": system_parameter_rule +"/servicenetworking:v1/SystemParameterRule/parameters": parameters +"/servicenetworking:v1/SystemParameterRule/parameters/parameter": parameter +"/servicenetworking:v1/SystemParameterRule/selector": selector +"/servicenetworking:v1/SystemParameters": system_parameters +"/servicenetworking:v1/SystemParameters/rules": rules +"/servicenetworking:v1/SystemParameters/rules/rule": rule +"/servicenetworking:v1/Type": type +"/servicenetworking:v1/Type/fields": fields +"/servicenetworking:v1/Type/fields/field": field +"/servicenetworking:v1/Type/name": name +"/servicenetworking:v1/Type/oneofs": oneofs +"/servicenetworking:v1/Type/oneofs/oneof": oneof +"/servicenetworking:v1/Type/options": options +"/servicenetworking:v1/Type/options/option": option +"/servicenetworking:v1/Type/sourceContext": source_context +"/servicenetworking:v1/Type/syntax": syntax +"/servicenetworking:v1/Usage": usage +"/servicenetworking:v1/Usage/producerNotificationChannel": producer_notification_channel +"/servicenetworking:v1/Usage/requirements": requirements +"/servicenetworking:v1/Usage/requirements/requirement": requirement +"/servicenetworking:v1/Usage/rules": rules +"/servicenetworking:v1/Usage/rules/rule": rule +"/servicenetworking:v1/UsageRule": usage_rule +"/servicenetworking:v1/UsageRule/allowUnregisteredCalls": allow_unregistered_calls +"/servicenetworking:v1/UsageRule/selector": selector +"/servicenetworking:v1/UsageRule/skipServiceControl": skip_service_control +"/servicenetworking:v1/fields": fields +"/servicenetworking:v1/key": key +"/servicenetworking:v1/quotaUser": quota_user +"/servicenetworking:v1/servicenetworking.operations.cancel": cancel_operation +"/servicenetworking:v1/servicenetworking.operations.cancel/name": name +"/servicenetworking:v1/servicenetworking.operations.delete": delete_operation +"/servicenetworking:v1/servicenetworking.operations.delete/name": name +"/servicenetworking:v1/servicenetworking.operations.get": get_operation +"/servicenetworking:v1/servicenetworking.operations.get/name": name +"/servicenetworking:v1/servicenetworking.operations.list": list_operations +"/servicenetworking:v1/servicenetworking.operations.list/filter": filter +"/servicenetworking:v1/servicenetworking.operations.list/name": name +"/servicenetworking:v1/servicenetworking.operations.list/pageSize": page_size +"/servicenetworking:v1/servicenetworking.operations.list/pageToken": page_token +"/servicenetworking:v1beta/AddSubnetworkRequest": add_subnetwork_request +"/servicenetworking:v1beta/AddSubnetworkRequest/consumer": consumer +"/servicenetworking:v1beta/AddSubnetworkRequest/consumerNetwork": consumer_network +"/servicenetworking:v1beta/AddSubnetworkRequest/description": description +"/servicenetworking:v1beta/AddSubnetworkRequest/ipPrefixLength": ip_prefix_length +"/servicenetworking:v1beta/AddSubnetworkRequest/region": region +"/servicenetworking:v1beta/AddSubnetworkRequest/subnetwork": subnetwork +"/servicenetworking:v1beta/AddSubnetworkRequest/subnetworkUsers": subnetwork_users +"/servicenetworking:v1beta/AddSubnetworkRequest/subnetworkUsers/subnetwork_user": subnetwork_user +"/servicenetworking:v1beta/AddSubnetworkResponse": add_subnetwork_response +"/servicenetworking:v1beta/AddSubnetworkResponse/ipCidrRange": ip_cidr_range +"/servicenetworking:v1beta/AddSubnetworkResponse/name": name +"/servicenetworking:v1beta/Api": api +"/servicenetworking:v1beta/Api/methods": methods_prop +"/servicenetworking:v1beta/Api/methods/methods_prop": methods_prop +"/servicenetworking:v1beta/Api/mixins": mixins +"/servicenetworking:v1beta/Api/mixins/mixin": mixin +"/servicenetworking:v1beta/Api/name": name +"/servicenetworking:v1beta/Api/options": options +"/servicenetworking:v1beta/Api/options/option": option +"/servicenetworking:v1beta/Api/sourceContext": source_context +"/servicenetworking:v1beta/Api/syntax": syntax +"/servicenetworking:v1beta/Api/version": version +"/servicenetworking:v1beta/AuthProvider": auth_provider +"/servicenetworking:v1beta/AuthProvider/audiences": audiences +"/servicenetworking:v1beta/AuthProvider/authorizationUrl": authorization_url +"/servicenetworking:v1beta/AuthProvider/id": id +"/servicenetworking:v1beta/AuthProvider/issuer": issuer +"/servicenetworking:v1beta/AuthProvider/jwksUri": jwks_uri +"/servicenetworking:v1beta/AuthRequirement": auth_requirement +"/servicenetworking:v1beta/AuthRequirement/audiences": audiences +"/servicenetworking:v1beta/AuthRequirement/providerId": provider_id +"/servicenetworking:v1beta/Authentication": authentication +"/servicenetworking:v1beta/Authentication/providers": providers +"/servicenetworking:v1beta/Authentication/providers/provider": provider +"/servicenetworking:v1beta/Authentication/rules": rules +"/servicenetworking:v1beta/Authentication/rules/rule": rule +"/servicenetworking:v1beta/AuthenticationRule": authentication_rule +"/servicenetworking:v1beta/AuthenticationRule/allowWithoutCredential": allow_without_credential +"/servicenetworking:v1beta/AuthenticationRule/oauth": oauth +"/servicenetworking:v1beta/AuthenticationRule/requirements": requirements +"/servicenetworking:v1beta/AuthenticationRule/requirements/requirement": requirement +"/servicenetworking:v1beta/AuthenticationRule/selector": selector +"/servicenetworking:v1beta/AuthorizationConfig": authorization_config +"/servicenetworking:v1beta/AuthorizationConfig/provider": provider +"/servicenetworking:v1beta/Backend": backend +"/servicenetworking:v1beta/Backend/rules": rules +"/servicenetworking:v1beta/Backend/rules/rule": rule +"/servicenetworking:v1beta/BackendRule": backend_rule +"/servicenetworking:v1beta/BackendRule/address": address +"/servicenetworking:v1beta/BackendRule/deadline": deadline +"/servicenetworking:v1beta/BackendRule/minDeadline": min_deadline +"/servicenetworking:v1beta/BackendRule/selector": selector +"/servicenetworking:v1beta/Billing": billing +"/servicenetworking:v1beta/Billing/consumerDestinations": consumer_destinations +"/servicenetworking:v1beta/Billing/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1beta/BillingDestination": billing_destination +"/servicenetworking:v1beta/BillingDestination/metrics": metrics +"/servicenetworking:v1beta/BillingDestination/metrics/metric": metric +"/servicenetworking:v1beta/BillingDestination/monitoredResource": monitored_resource +"/servicenetworking:v1beta/Connection": connection +"/servicenetworking:v1beta/Connection/network": network +"/servicenetworking:v1beta/Connection/peering": peering +"/servicenetworking:v1beta/Connection/reservedPeeringRanges": reserved_peering_ranges +"/servicenetworking:v1beta/Connection/reservedPeeringRanges/reserved_peering_range": reserved_peering_range +"/servicenetworking:v1beta/Context": context +"/servicenetworking:v1beta/Context/rules": rules +"/servicenetworking:v1beta/Context/rules/rule": rule +"/servicenetworking:v1beta/ContextRule": context_rule +"/servicenetworking:v1beta/ContextRule/allowedRequestExtensions": allowed_request_extensions +"/servicenetworking:v1beta/ContextRule/allowedRequestExtensions/allowed_request_extension": allowed_request_extension +"/servicenetworking:v1beta/ContextRule/allowedResponseExtensions": allowed_response_extensions +"/servicenetworking:v1beta/ContextRule/allowedResponseExtensions/allowed_response_extension": allowed_response_extension +"/servicenetworking:v1beta/ContextRule/provided": provided +"/servicenetworking:v1beta/ContextRule/provided/provided": provided +"/servicenetworking:v1beta/ContextRule/requested": requested +"/servicenetworking:v1beta/ContextRule/requested/requested": requested +"/servicenetworking:v1beta/ContextRule/selector": selector +"/servicenetworking:v1beta/Control": control +"/servicenetworking:v1beta/Control/environment": environment +"/servicenetworking:v1beta/CustomError": custom_error +"/servicenetworking:v1beta/CustomError/rules": rules +"/servicenetworking:v1beta/CustomError/rules/rule": rule +"/servicenetworking:v1beta/CustomError/types": types +"/servicenetworking:v1beta/CustomError/types/type": type +"/servicenetworking:v1beta/CustomErrorRule": custom_error_rule +"/servicenetworking:v1beta/CustomErrorRule/isErrorType": is_error_type +"/servicenetworking:v1beta/CustomErrorRule/selector": selector +"/servicenetworking:v1beta/CustomHttpPattern": custom_http_pattern +"/servicenetworking:v1beta/CustomHttpPattern/kind": kind +"/servicenetworking:v1beta/CustomHttpPattern/path": path +"/servicenetworking:v1beta/Documentation": documentation +"/servicenetworking:v1beta/Documentation/documentationRootUrl": documentation_root_url +"/servicenetworking:v1beta/Documentation/overview": overview +"/servicenetworking:v1beta/Documentation/pages": pages +"/servicenetworking:v1beta/Documentation/pages/page": page +"/servicenetworking:v1beta/Documentation/rules": rules +"/servicenetworking:v1beta/Documentation/rules/rule": rule +"/servicenetworking:v1beta/Documentation/summary": summary +"/servicenetworking:v1beta/DocumentationRule": documentation_rule +"/servicenetworking:v1beta/DocumentationRule/deprecationDescription": deprecation_description +"/servicenetworking:v1beta/DocumentationRule/description": description +"/servicenetworking:v1beta/DocumentationRule/selector": selector +"/servicenetworking:v1beta/Endpoint": endpoint +"/servicenetworking:v1beta/Endpoint/aliases": aliases +"/servicenetworking:v1beta/Endpoint/aliases/alias": alias +"/servicenetworking:v1beta/Endpoint/allowCors": allow_cors +"/servicenetworking:v1beta/Endpoint/features": features +"/servicenetworking:v1beta/Endpoint/features/feature": feature +"/servicenetworking:v1beta/Endpoint/name": name +"/servicenetworking:v1beta/Endpoint/target": target +"/servicenetworking:v1beta/Enum": enum +"/servicenetworking:v1beta/Enum/enumvalue": enumvalue +"/servicenetworking:v1beta/Enum/enumvalue/enumvalue": enumvalue +"/servicenetworking:v1beta/Enum/name": name +"/servicenetworking:v1beta/Enum/options": options +"/servicenetworking:v1beta/Enum/options/option": option +"/servicenetworking:v1beta/Enum/sourceContext": source_context +"/servicenetworking:v1beta/Enum/syntax": syntax +"/servicenetworking:v1beta/EnumValue": enum_value +"/servicenetworking:v1beta/EnumValue/name": name +"/servicenetworking:v1beta/EnumValue/number": number +"/servicenetworking:v1beta/EnumValue/options": options +"/servicenetworking:v1beta/EnumValue/options/option": option +"/servicenetworking:v1beta/Experimental": experimental +"/servicenetworking:v1beta/Experimental/authorization": authorization +"/servicenetworking:v1beta/Field": field +"/servicenetworking:v1beta/Field/cardinality": cardinality +"/servicenetworking:v1beta/Field/defaultValue": default_value +"/servicenetworking:v1beta/Field/jsonName": json_name +"/servicenetworking:v1beta/Field/kind": kind +"/servicenetworking:v1beta/Field/name": name +"/servicenetworking:v1beta/Field/number": number +"/servicenetworking:v1beta/Field/oneofIndex": oneof_index +"/servicenetworking:v1beta/Field/options": options +"/servicenetworking:v1beta/Field/options/option": option +"/servicenetworking:v1beta/Field/packed": packed +"/servicenetworking:v1beta/Field/typeUrl": type_url +"/servicenetworking:v1beta/Http": http +"/servicenetworking:v1beta/Http/fullyDecodeReservedExpansion": fully_decode_reserved_expansion +"/servicenetworking:v1beta/Http/rules": rules +"/servicenetworking:v1beta/Http/rules/rule": rule +"/servicenetworking:v1beta/HttpRule": http_rule +"/servicenetworking:v1beta/HttpRule/additionalBindings": additional_bindings +"/servicenetworking:v1beta/HttpRule/additionalBindings/additional_binding": additional_binding +"/servicenetworking:v1beta/HttpRule/body": body +"/servicenetworking:v1beta/HttpRule/custom": custom +"/servicenetworking:v1beta/HttpRule/delete": delete +"/servicenetworking:v1beta/HttpRule/get": get +"/servicenetworking:v1beta/HttpRule/patch": patch +"/servicenetworking:v1beta/HttpRule/post": post +"/servicenetworking:v1beta/HttpRule/put": put +"/servicenetworking:v1beta/HttpRule/responseBody": response_body +"/servicenetworking:v1beta/HttpRule/selector": selector +"/servicenetworking:v1beta/LabelDescriptor": label_descriptor +"/servicenetworking:v1beta/LabelDescriptor/description": description +"/servicenetworking:v1beta/LabelDescriptor/key": key +"/servicenetworking:v1beta/LabelDescriptor/valueType": value_type +"/servicenetworking:v1beta/ListConnectionsResponse": list_connections_response +"/servicenetworking:v1beta/ListConnectionsResponse/connections": connections +"/servicenetworking:v1beta/ListConnectionsResponse/connections/connection": connection +"/servicenetworking:v1beta/LogDescriptor": log_descriptor +"/servicenetworking:v1beta/LogDescriptor/description": description +"/servicenetworking:v1beta/LogDescriptor/displayName": display_name +"/servicenetworking:v1beta/LogDescriptor/labels": labels +"/servicenetworking:v1beta/LogDescriptor/labels/label": label +"/servicenetworking:v1beta/LogDescriptor/name": name +"/servicenetworking:v1beta/Logging": logging +"/servicenetworking:v1beta/Logging/consumerDestinations": consumer_destinations +"/servicenetworking:v1beta/Logging/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1beta/Logging/producerDestinations": producer_destinations +"/servicenetworking:v1beta/Logging/producerDestinations/producer_destination": producer_destination +"/servicenetworking:v1beta/LoggingDestination": logging_destination +"/servicenetworking:v1beta/LoggingDestination/logs": logs +"/servicenetworking:v1beta/LoggingDestination/logs/log": log +"/servicenetworking:v1beta/LoggingDestination/monitoredResource": monitored_resource +"/servicenetworking:v1beta/Method": method_prop +"/servicenetworking:v1beta/Method/name": name +"/servicenetworking:v1beta/Method/options": options +"/servicenetworking:v1beta/Method/options/option": option +"/servicenetworking:v1beta/Method/requestStreaming": request_streaming +"/servicenetworking:v1beta/Method/requestTypeUrl": request_type_url +"/servicenetworking:v1beta/Method/responseStreaming": response_streaming +"/servicenetworking:v1beta/Method/responseTypeUrl": response_type_url +"/servicenetworking:v1beta/Method/syntax": syntax +"/servicenetworking:v1beta/MetricDescriptor": metric_descriptor +"/servicenetworking:v1beta/MetricDescriptor/description": description +"/servicenetworking:v1beta/MetricDescriptor/displayName": display_name +"/servicenetworking:v1beta/MetricDescriptor/labels": labels +"/servicenetworking:v1beta/MetricDescriptor/labels/label": label +"/servicenetworking:v1beta/MetricDescriptor/metadata": metadata +"/servicenetworking:v1beta/MetricDescriptor/metricKind": metric_kind +"/servicenetworking:v1beta/MetricDescriptor/name": name +"/servicenetworking:v1beta/MetricDescriptor/type": type +"/servicenetworking:v1beta/MetricDescriptor/unit": unit +"/servicenetworking:v1beta/MetricDescriptor/valueType": value_type +"/servicenetworking:v1beta/MetricDescriptorMetadata": metric_descriptor_metadata +"/servicenetworking:v1beta/MetricDescriptorMetadata/ingestDelay": ingest_delay +"/servicenetworking:v1beta/MetricDescriptorMetadata/launchStage": launch_stage +"/servicenetworking:v1beta/MetricDescriptorMetadata/samplePeriod": sample_period +"/servicenetworking:v1beta/MetricRule": metric_rule +"/servicenetworking:v1beta/MetricRule/metricCosts": metric_costs +"/servicenetworking:v1beta/MetricRule/metricCosts/metric_cost": metric_cost +"/servicenetworking:v1beta/MetricRule/selector": selector +"/servicenetworking:v1beta/Mixin": mixin +"/servicenetworking:v1beta/Mixin/name": name +"/servicenetworking:v1beta/Mixin/root": root +"/servicenetworking:v1beta/MonitoredResourceDescriptor": monitored_resource_descriptor +"/servicenetworking:v1beta/MonitoredResourceDescriptor/description": description +"/servicenetworking:v1beta/MonitoredResourceDescriptor/displayName": display_name +"/servicenetworking:v1beta/MonitoredResourceDescriptor/labels": labels +"/servicenetworking:v1beta/MonitoredResourceDescriptor/labels/label": label +"/servicenetworking:v1beta/MonitoredResourceDescriptor/name": name +"/servicenetworking:v1beta/MonitoredResourceDescriptor/type": type +"/servicenetworking:v1beta/Monitoring": monitoring +"/servicenetworking:v1beta/Monitoring/consumerDestinations": consumer_destinations +"/servicenetworking:v1beta/Monitoring/consumerDestinations/consumer_destination": consumer_destination +"/servicenetworking:v1beta/Monitoring/producerDestinations": producer_destinations +"/servicenetworking:v1beta/Monitoring/producerDestinations/producer_destination": producer_destination +"/servicenetworking:v1beta/MonitoringDestination": monitoring_destination +"/servicenetworking:v1beta/MonitoringDestination/metrics": metrics +"/servicenetworking:v1beta/MonitoringDestination/metrics/metric": metric +"/servicenetworking:v1beta/MonitoringDestination/monitoredResource": monitored_resource +"/servicenetworking:v1beta/OAuthRequirements": o_auth_requirements +"/servicenetworking:v1beta/OAuthRequirements/canonicalScopes": canonical_scopes +"/servicenetworking:v1beta/Operation": operation +"/servicenetworking:v1beta/Operation/done": done +"/servicenetworking:v1beta/Operation/error": error +"/servicenetworking:v1beta/Operation/metadata": metadata +"/servicenetworking:v1beta/Operation/metadata/metadatum": metadatum +"/servicenetworking:v1beta/Operation/name": name +"/servicenetworking:v1beta/Operation/response": response +"/servicenetworking:v1beta/Operation/response/response": response +"/servicenetworking:v1beta/Option": option +"/servicenetworking:v1beta/Option/name": name +"/servicenetworking:v1beta/Option/value": value +"/servicenetworking:v1beta/Option/value/value": value +"/servicenetworking:v1beta/Page": page +"/servicenetworking:v1beta/Page/content": content +"/servicenetworking:v1beta/Page/name": name +"/servicenetworking:v1beta/Page/subpages": subpages +"/servicenetworking:v1beta/Page/subpages/subpage": subpage +"/servicenetworking:v1beta/Quota": quota +"/servicenetworking:v1beta/Quota/limits": limits +"/servicenetworking:v1beta/Quota/limits/limit": limit +"/servicenetworking:v1beta/Quota/metricRules": metric_rules +"/servicenetworking:v1beta/Quota/metricRules/metric_rule": metric_rule +"/servicenetworking:v1beta/QuotaLimit": quota_limit +"/servicenetworking:v1beta/QuotaLimit/defaultLimit": default_limit +"/servicenetworking:v1beta/QuotaLimit/description": description +"/servicenetworking:v1beta/QuotaLimit/displayName": display_name +"/servicenetworking:v1beta/QuotaLimit/duration": duration +"/servicenetworking:v1beta/QuotaLimit/freeTier": free_tier +"/servicenetworking:v1beta/QuotaLimit/maxLimit": max_limit +"/servicenetworking:v1beta/QuotaLimit/metric": metric +"/servicenetworking:v1beta/QuotaLimit/name": name +"/servicenetworking:v1beta/QuotaLimit/unit": unit +"/servicenetworking:v1beta/QuotaLimit/values": values +"/servicenetworking:v1beta/QuotaLimit/values/value": value +"/servicenetworking:v1beta/Service": service +"/servicenetworking:v1beta/Service/apis": apis +"/servicenetworking:v1beta/Service/apis/api": api +"/servicenetworking:v1beta/Service/authentication": authentication +"/servicenetworking:v1beta/Service/backend": backend +"/servicenetworking:v1beta/Service/billing": billing +"/servicenetworking:v1beta/Service/configVersion": config_version +"/servicenetworking:v1beta/Service/context": context +"/servicenetworking:v1beta/Service/control": control +"/servicenetworking:v1beta/Service/customError": custom_error +"/servicenetworking:v1beta/Service/documentation": documentation +"/servicenetworking:v1beta/Service/endpoints": endpoints +"/servicenetworking:v1beta/Service/endpoints/endpoint": endpoint +"/servicenetworking:v1beta/Service/enums": enums +"/servicenetworking:v1beta/Service/enums/enum": enum +"/servicenetworking:v1beta/Service/experimental": experimental +"/servicenetworking:v1beta/Service/http": http +"/servicenetworking:v1beta/Service/id": id +"/servicenetworking:v1beta/Service/logging": logging +"/servicenetworking:v1beta/Service/logs": logs +"/servicenetworking:v1beta/Service/logs/log": log +"/servicenetworking:v1beta/Service/metrics": metrics +"/servicenetworking:v1beta/Service/metrics/metric": metric +"/servicenetworking:v1beta/Service/monitoredResources": monitored_resources +"/servicenetworking:v1beta/Service/monitoredResources/monitored_resource": monitored_resource +"/servicenetworking:v1beta/Service/monitoring": monitoring +"/servicenetworking:v1beta/Service/name": name +"/servicenetworking:v1beta/Service/producerProjectId": producer_project_id +"/servicenetworking:v1beta/Service/quota": quota +"/servicenetworking:v1beta/Service/sourceInfo": source_info +"/servicenetworking:v1beta/Service/systemParameters": system_parameters +"/servicenetworking:v1beta/Service/systemTypes": system_types +"/servicenetworking:v1beta/Service/systemTypes/system_type": system_type +"/servicenetworking:v1beta/Service/title": title +"/servicenetworking:v1beta/Service/types": types +"/servicenetworking:v1beta/Service/types/type": type +"/servicenetworking:v1beta/Service/usage": usage +"/servicenetworking:v1beta/SourceContext": source_context +"/servicenetworking:v1beta/SourceContext/fileName": file_name +"/servicenetworking:v1beta/SourceInfo": source_info +"/servicenetworking:v1beta/SourceInfo/sourceFiles": source_files +"/servicenetworking:v1beta/SourceInfo/sourceFiles/source_file": source_file +"/servicenetworking:v1beta/SourceInfo/sourceFiles/source_file/source_file": source_file +"/servicenetworking:v1beta/Status": status +"/servicenetworking:v1beta/Status/code": code +"/servicenetworking:v1beta/Status/details": details +"/servicenetworking:v1beta/Status/details/detail": detail +"/servicenetworking:v1beta/Status/details/detail/detail": detail +"/servicenetworking:v1beta/Status/message": message +"/servicenetworking:v1beta/Subnetwork": subnetwork +"/servicenetworking:v1beta/Subnetwork/ipCidrRange": ip_cidr_range +"/servicenetworking:v1beta/Subnetwork/name": name +"/servicenetworking:v1beta/SystemParameter": system_parameter +"/servicenetworking:v1beta/SystemParameter/httpHeader": http_header +"/servicenetworking:v1beta/SystemParameter/name": name +"/servicenetworking:v1beta/SystemParameter/urlQueryParameter": url_query_parameter +"/servicenetworking:v1beta/SystemParameterRule": system_parameter_rule +"/servicenetworking:v1beta/SystemParameterRule/parameters": parameters +"/servicenetworking:v1beta/SystemParameterRule/parameters/parameter": parameter +"/servicenetworking:v1beta/SystemParameterRule/selector": selector +"/servicenetworking:v1beta/SystemParameters": system_parameters +"/servicenetworking:v1beta/SystemParameters/rules": rules +"/servicenetworking:v1beta/SystemParameters/rules/rule": rule +"/servicenetworking:v1beta/Type": type +"/servicenetworking:v1beta/Type/fields": fields +"/servicenetworking:v1beta/Type/fields/field": field +"/servicenetworking:v1beta/Type/name": name +"/servicenetworking:v1beta/Type/oneofs": oneofs +"/servicenetworking:v1beta/Type/oneofs/oneof": oneof +"/servicenetworking:v1beta/Type/options": options +"/servicenetworking:v1beta/Type/options/option": option +"/servicenetworking:v1beta/Type/sourceContext": source_context +"/servicenetworking:v1beta/Type/syntax": syntax +"/servicenetworking:v1beta/Usage": usage +"/servicenetworking:v1beta/Usage/producerNotificationChannel": producer_notification_channel +"/servicenetworking:v1beta/Usage/requirements": requirements +"/servicenetworking:v1beta/Usage/requirements/requirement": requirement +"/servicenetworking:v1beta/Usage/rules": rules +"/servicenetworking:v1beta/Usage/rules/rule": rule +"/servicenetworking:v1beta/UsageRule": usage_rule +"/servicenetworking:v1beta/UsageRule/allowUnregisteredCalls": allow_unregistered_calls +"/servicenetworking:v1beta/UsageRule/selector": selector +"/servicenetworking:v1beta/UsageRule/skipServiceControl": skip_service_control +"/servicenetworking:v1beta/fields": fields +"/servicenetworking:v1beta/key": key +"/servicenetworking:v1beta/quotaUser": quota_user +"/servicenetworking:v1beta/servicenetworking.operations.get": get_operation +"/servicenetworking:v1beta/servicenetworking.operations.get/name": name +"/servicenetworking:v1beta/servicenetworking.services.addSubnetwork": add_service_subnetwork +"/servicenetworking:v1beta/servicenetworking.services.addSubnetwork/parent": parent +"/servicenetworking:v1beta/servicenetworking.services.connections.create": create_service_connection +"/servicenetworking:v1beta/servicenetworking.services.connections.create/parent": parent +"/servicenetworking:v1beta/servicenetworking.services.connections.list": list_service_connections +"/servicenetworking:v1beta/servicenetworking.services.connections.list/network": network +"/servicenetworking:v1beta/servicenetworking.services.connections.list/parent": parent "/serviceusage:v1/Api": api "/serviceusage:v1/Api/methods": methods_prop "/serviceusage:v1/Api/methods/methods_prop": methods_prop @@ -88206,7 +89018,10 @@ "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig": google_cloud_videointelligence_v1p1beta1_speech_transcription_config "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/audioTracks": audio_tracks "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/audioTracks/audio_track": audio_track +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/diarizationSpeakerCount": diarization_speaker_count "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/enableAutomaticPunctuation": enable_automatic_punctuation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/enableSpeakerDiarization": enable_speaker_diarization +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/enableWordConfidence": enable_word_confidence "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/filterProfanity": filter_profanity "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/languageCode": language_code "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_SpeechTranscriptionConfig/maxAlternatives": max_alternatives @@ -88246,9 +89061,100 @@ "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_VideoSegment/endTimeOffset": end_time_offset "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_VideoSegment/startTimeOffset": start_time_offset "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo": google_cloud_videointelligence_v1p1beta1_word_info +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo/confidence": confidence "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo/endTime": end_time +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo/speakerTag": speaker_tag "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo/startTime": start_time "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p1beta1_WordInfo/word": word +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress": google_cloud_videointelligence_v1p2beta1_annotate_video_progress +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress/annotationProgress": annotation_progress +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress/annotationProgress/annotation_progress": annotation_progress +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse": google_cloud_videointelligence_v1p2beta1_annotate_video_response +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse/annotationResults": annotation_results +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse/annotationResults/annotation_result": annotation_result +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_Entity": google_cloud_videointelligence_v1p2beta1_entity +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_Entity/description": description +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_Entity/entityId": entity_id +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_Entity/languageCode": language_code +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation": google_cloud_videointelligence_v1p2beta1_explicit_content_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation/frames": frames +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation/frames/frame": frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame": google_cloud_videointelligence_v1p2beta1_explicit_content_frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame/pornographyLikelihood": pornography_likelihood +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame/timeOffset": time_offset +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation": google_cloud_videointelligence_v1p2beta1_label_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/categoryEntities": category_entities +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/categoryEntities/category_entity": category_entity +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/entity": entity +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/frames": frames +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/frames/frame": frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/segments": segments +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation/segments/segment": segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelFrame": google_cloud_videointelligence_v1p2beta1_label_frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelFrame/confidence": confidence +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelFrame/timeOffset": time_offset +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelSegment": google_cloud_videointelligence_v1p2beta1_label_segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelSegment/confidence": confidence +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_LabelSegment/segment": segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox": google_cloud_videointelligence_v1p2beta1_normalized_bounding_box +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox/bottom": bottom +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox/left": left +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox/right": right +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox/top": top +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly": google_cloud_videointelligence_v1p2beta1_normalized_bounding_poly +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly/vertices": vertices +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly/vertices/vertex": vertex +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex": google_cloud_videointelligence_v1p2beta1_normalized_vertex +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex/x": x +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex/y": y +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation": google_cloud_videointelligence_v1p2beta1_object_tracking_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation/confidence": confidence +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation/entity": entity +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation/frames": frames +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation/frames/frame": frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation/segment": segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame": google_cloud_videointelligence_v1p2beta1_object_tracking_frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame/normalizedBoundingBox": normalized_bounding_box +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame/timeOffset": time_offset +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation": google_cloud_videointelligence_v1p2beta1_text_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/confidence": confidence +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/frames": frames +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/frames/frame": frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/segments": segments +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/segments/segment": segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextAnnotation/text": text +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextFrame": google_cloud_videointelligence_v1p2beta1_text_frame +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextFrame/rotatedBoundingBox": rotated_bounding_box +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextFrame/timeOffset": time_offset +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextSegment": google_cloud_videointelligence_v1p2beta1_text_segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_TextSegment/segment": segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress": google_cloud_videointelligence_v1p2beta1_video_annotation_progress +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress/inputUri": input_uri +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress/progressPercent": progress_percent +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress/startTime": start_time +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress/updateTime": update_time +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults": google_cloud_videointelligence_v1p2beta1_video_annotation_results +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/error": error +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/explicitAnnotation": explicit_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/frameLabelAnnotations": frame_label_annotations +? "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/frameLabelAnnotations/frame_label_annotation" +: frame_label_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/inputUri": input_uri +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/objectAnnotations": object_annotations +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/objectAnnotations/object_annotation": object_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/segmentLabelAnnotations": segment_label_annotations +? "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/segmentLabelAnnotations/segment_label_annotation" +: segment_label_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/shotAnnotations": shot_annotations +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/shotAnnotations/shot_annotation": shot_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/shotLabelAnnotations": shot_label_annotations +? "/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/shotLabelAnnotations/shot_label_annotation" +: shot_label_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/textAnnotations": text_annotations +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults/textAnnotations/text_annotation": text_annotation +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoSegment": google_cloud_videointelligence_v1p2beta1_video_segment +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoSegment/endTimeOffset": end_time_offset +"/videointelligence:v1p1beta1/GoogleCloudVideointelligenceV1p2beta1_VideoSegment/startTimeOffset": start_time_offset "/videointelligence:v1p1beta1/GoogleLongrunning_Operation": google_longrunning_operation "/videointelligence:v1p1beta1/GoogleLongrunning_Operation/done": done "/videointelligence:v1p1beta1/GoogleLongrunning_Operation/error": error diff --git a/generated/google/apis/androidenterprise_v1.rb b/generated/google/apis/androidenterprise_v1.rb index 25c16b464..2b9e73bb8 100644 --- a/generated/google/apis/androidenterprise_v1.rb +++ b/generated/google/apis/androidenterprise_v1.rb @@ -25,7 +25,7 @@ module Google # @see https://developers.google.com/android/work/play/emm-api module AndroidenterpriseV1 VERSION = 'V1' - REVISION = '20180912' + REVISION = '20181001' # Manage corporate Android devices AUTH_ANDROIDENTERPRISE = 'https://www.googleapis.com/auth/androidenterprise' diff --git a/generated/google/apis/androidenterprise_v1/classes.rb b/generated/google/apis/androidenterprise_v1/classes.rb index 9f850a8a3..eda9249c6 100644 --- a/generated/google/apis/androidenterprise_v1/classes.rb +++ b/generated/google/apis/androidenterprise_v1/classes.rb @@ -86,10 +86,7 @@ module Google # @return [String] attr_accessor :parent - # The list of permissions the admin is granted within the iframe. The admin will - # only be allowed to view an iframe if they have all of the permissions - # associated with it. The only valid value is "approveApps" that will allow the - # admin to access the iframe in "approve" mode. + # Deprecated. Use PlaySearch.approveApps. # Corresponds to the JSON property `permission` # @return [Array] attr_accessor :permission @@ -134,6 +131,12 @@ module Google class AdministratorWebTokenSpecPlaySearch include Google::Apis::Core::Hashable + # Allow access to the iframe in approve mode. Default is false. + # Corresponds to the JSON property `approveApps` + # @return [Boolean] + attr_accessor :approve_apps + alias_method :approve_apps?, :approve_apps + # Whether the Play Search page is displayed. Default is true. # Corresponds to the JSON property `enabled` # @return [Boolean] @@ -146,6 +149,7 @@ module Google # Update properties of this object def update!(**args) + @approve_apps = args[:approve_apps] if args.key?(:approve_apps) @enabled = args[:enabled] if args.key?(:enabled) end end diff --git a/generated/google/apis/androidenterprise_v1/representations.rb b/generated/google/apis/androidenterprise_v1/representations.rb index 59b3f8f2f..485f8ae68 100644 --- a/generated/google/apis/androidenterprise_v1/representations.rb +++ b/generated/google/apis/androidenterprise_v1/representations.rb @@ -501,6 +501,7 @@ module Google class AdministratorWebTokenSpecPlaySearch # @private class Representation < Google::Apis::Core::JsonRepresentation + property :approve_apps, as: 'approveApps' property :enabled, as: 'enabled' end end diff --git a/generated/google/apis/bigquerydatatransfer_v1.rb b/generated/google/apis/bigquerydatatransfer_v1.rb index a9b010535..877783078 100644 --- a/generated/google/apis/bigquerydatatransfer_v1.rb +++ b/generated/google/apis/bigquerydatatransfer_v1.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/bigquery/ module BigquerydatatransferV1 VERSION = 'V1' - REVISION = '20180728' + REVISION = '20181001' # View and manage your data in Google BigQuery AUTH_BIGQUERY = 'https://www.googleapis.com/auth/bigquery' diff --git a/generated/google/apis/bigquerydatatransfer_v1/classes.rb b/generated/google/apis/bigquerydatatransfer_v1/classes.rb index 8a19e33f7..f4716a4ae 100644 --- a/generated/google/apis/bigquerydatatransfer_v1/classes.rb +++ b/generated/google/apis/bigquerydatatransfer_v1/classes.rb @@ -680,11 +680,12 @@ module Google attr_accessor :display_name # The resource name of the transfer config. - # Transfer config names have the form - # `projects/`project_id`/transferConfigs/`config_id``. - # Where `config_id` is usually a uuid, even though it is not - # guaranteed or required. The name is ignored when creating a transfer - # config. + # Transfer config names have the form of + # `projects/`project_id`/location/`region`/transferConfigs/`config_id``. + # The name is automatically generated based on the config_id specified in + # CreateTransferConfigRequest along with project_id and region. If config_id + # is not provided, usually a uuid, even though it is not guaranteed or + # required, will be generated for config_id. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name diff --git a/generated/google/apis/bigquerydatatransfer_v1/service.rb b/generated/google/apis/bigquerydatatransfer_v1/service.rb index a5e70733c..f76d645c1 100644 --- a/generated/google/apis/bigquerydatatransfer_v1/service.rb +++ b/generated/google/apis/bigquerydatatransfer_v1/service.rb @@ -508,11 +508,12 @@ module Google # All fields must be set, even if they are not updated. # @param [String] name # The resource name of the transfer config. - # Transfer config names have the form - # `projects/`project_id`/transferConfigs/`config_id``. - # Where `config_id` is usually a uuid, even though it is not - # guaranteed or required. The name is ignored when creating a transfer - # config. + # Transfer config names have the form of + # `projects/`project_id`/location/`region`/transferConfigs/`config_id``. + # The name is automatically generated based on the config_id specified in + # CreateTransferConfigRequest along with project_id and region. If config_id + # is not provided, usually a uuid, even though it is not guaranteed or + # required, will be generated for config_id. # @param [Google::Apis::BigquerydatatransferV1::TransferConfig] transfer_config_object # @param [String] authorization_code # Optional OAuth2 authorization code to use with this transfer configuration. @@ -921,11 +922,12 @@ module Google # All fields must be set, even if they are not updated. # @param [String] name # The resource name of the transfer config. - # Transfer config names have the form - # `projects/`project_id`/transferConfigs/`config_id``. - # Where `config_id` is usually a uuid, even though it is not - # guaranteed or required. The name is ignored when creating a transfer - # config. + # Transfer config names have the form of + # `projects/`project_id`/location/`region`/transferConfigs/`config_id``. + # The name is automatically generated based on the config_id specified in + # CreateTransferConfigRequest along with project_id and region. If config_id + # is not provided, usually a uuid, even though it is not guaranteed or + # required, will be generated for config_id. # @param [Google::Apis::BigquerydatatransferV1::TransferConfig] transfer_config_object # @param [String] authorization_code # Optional OAuth2 authorization code to use with this transfer configuration. diff --git a/generated/google/apis/calendar_v3.rb b/generated/google/apis/calendar_v3.rb index 7735c8155..74d8b8483 100644 --- a/generated/google/apis/calendar_v3.rb +++ b/generated/google/apis/calendar_v3.rb @@ -25,7 +25,7 @@ module Google # @see https://developers.google.com/google-apps/calendar/firstapp module CalendarV3 VERSION = 'V3' - REVISION = '20180909' + REVISION = '20180923' # Manage your calendars AUTH_CALENDAR = 'https://www.googleapis.com/auth/calendar' diff --git a/generated/google/apis/calendar_v3/service.rb b/generated/google/apis/calendar_v3/service.rb index 9b69a3046..59c2bf621 100644 --- a/generated/google/apis/calendar_v3/service.rb +++ b/generated/google/apis/calendar_v3/service.rb @@ -986,8 +986,12 @@ module Google # @param [String] event_id # Event identifier. # @param [Boolean] send_notifications - # Whether to send notifications about the deletion of the event. Optional. The - # default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the deletion of the event. Note that some + # emails might still be sent even if you set the value to false. The default is + # False. + # @param [String] send_updates + # Guests who should receive notifications about the deletion of the event. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user @@ -1007,11 +1011,12 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def delete_event(calendar_id, event_id, send_notifications: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def delete_event(calendar_id, event_id, send_notifications: nil, send_updates: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:delete, 'calendars/{calendarId}/events/{eventId}', options) command.params['calendarId'] = calendar_id unless calendar_id.nil? command.params['eventId'] = event_id unless event_id.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? @@ -1139,8 +1144,13 @@ module Google # than the specified number of attendees, only the participant is returned. # Optional. # @param [Boolean] send_notifications - # Whether to send notifications about the creation of the new event. Optional. - # The default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the creation of the new event. Note that + # some emails might still be sent even if you set the value to false. The + # default is False. + # @param [String] send_updates + # Whether to send notifications about the creation of the new event. Note that + # some emails might still be sent. The default is False. # @param [Boolean] supports_attachments # Whether API client performing operation supports event attachments. Optional. # The default is False. @@ -1163,7 +1173,7 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def insert_event(calendar_id, event_object = nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def insert_event(calendar_id, event_object = nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, send_updates: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, 'calendars/{calendarId}/events', options) command.request_representation = Google::Apis::CalendarV3::Event::Representation command.request_object = event_object @@ -1173,6 +1183,7 @@ module Google command.query['conferenceDataVersion'] = conference_data_version unless conference_data_version.nil? command.query['maxAttendees'] = max_attendees unless max_attendees.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['supportsAttachments'] = supports_attachments unless supports_attachments.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? @@ -1409,8 +1420,13 @@ module Google # @param [String] destination # Calendar identifier of the target calendar where the event is to be moved to. # @param [Boolean] send_notifications - # Whether to send notifications about the change of the event's organizer. - # Optional. The default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the change of the event's organizer. Note + # that some emails might still be sent even if you set the value to false. The + # default is False. + # @param [String] send_updates + # Guests who should receive notifications about the change of the event's + # organizer. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user @@ -1430,7 +1446,7 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def move_event(calendar_id, event_id, destination, send_notifications: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def move_event(calendar_id, event_id, destination, send_notifications: nil, send_updates: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, 'calendars/{calendarId}/events/{eventId}/move', options) command.response_representation = Google::Apis::CalendarV3::Event::Representation command.response_class = Google::Apis::CalendarV3::Event @@ -1438,6 +1454,7 @@ module Google command.params['eventId'] = event_id unless event_id.nil? command.query['destination'] = destination unless destination.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? @@ -1469,8 +1486,13 @@ module Google # than the specified number of attendees, only the participant is returned. # Optional. # @param [Boolean] send_notifications - # Whether to send notifications about the event update (e.g. attendee's - # responses, title changes, etc.). Optional. The default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the event update (e.g. description changes, + # etc.). Note that some emails might still be sent even if you set the value to + # false. The default is False. + # @param [String] send_updates + # Guests who should receive notifications about the event update (e.g., attendee + # responses, title changes, etc.). # @param [Boolean] supports_attachments # Whether API client performing operation supports event attachments. Optional. # The default is False. @@ -1493,7 +1515,7 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def patch_event(calendar_id, event_id, event_object = nil, always_include_email: nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def patch_event(calendar_id, event_id, event_object = nil, always_include_email: nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, send_updates: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:patch, 'calendars/{calendarId}/events/{eventId}', options) command.request_representation = Google::Apis::CalendarV3::Event::Representation command.request_object = event_object @@ -1505,6 +1527,7 @@ module Google command.query['conferenceDataVersion'] = conference_data_version unless conference_data_version.nil? command.query['maxAttendees'] = max_attendees unless max_attendees.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['supportsAttachments'] = supports_attachments unless supports_attachments.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? @@ -1520,8 +1543,12 @@ module Google # @param [String] text # The text describing the event to be created. # @param [Boolean] send_notifications - # Whether to send notifications about the creation of the event. Optional. The - # default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the creation of the event. Note that some + # emails might still be sent even if you set the value to false. The default is + # False. + # @param [String] send_updates + # Guests who should receive notifications about the creation of the new event. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user @@ -1541,12 +1568,13 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def quick_add_event(calendar_id, text, send_notifications: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def quick_add_event(calendar_id, text, send_notifications: nil, send_updates: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, 'calendars/{calendarId}/events/quickAdd', options) command.response_representation = Google::Apis::CalendarV3::Event::Representation command.response_class = Google::Apis::CalendarV3::Event command.params['calendarId'] = calendar_id unless calendar_id.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['text'] = text unless text.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? @@ -1579,8 +1607,13 @@ module Google # than the specified number of attendees, only the participant is returned. # Optional. # @param [Boolean] send_notifications - # Whether to send notifications about the event update (e.g. attendee's - # responses, title changes, etc.). Optional. The default is False. + # Deprecated. Please use sendUpdates instead. + # Whether to send notifications about the event update (e.g. description changes, + # etc.). Note that some emails might still be sent even if you set the value to + # false. The default is False. + # @param [String] send_updates + # Guests who should receive notifications about the event update (e.g., attendee + # responses, title changes, etc.). # @param [Boolean] supports_attachments # Whether API client performing operation supports event attachments. Optional. # The default is False. @@ -1603,7 +1636,7 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def update_event(calendar_id, event_id, event_object = nil, always_include_email: nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + def update_event(calendar_id, event_id, event_object = nil, always_include_email: nil, conference_data_version: nil, max_attendees: nil, send_notifications: nil, send_updates: nil, supports_attachments: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:put, 'calendars/{calendarId}/events/{eventId}', options) command.request_representation = Google::Apis::CalendarV3::Event::Representation command.request_object = event_object @@ -1615,6 +1648,7 @@ module Google command.query['conferenceDataVersion'] = conference_data_version unless conference_data_version.nil? command.query['maxAttendees'] = max_attendees unless max_attendees.nil? command.query['sendNotifications'] = send_notifications unless send_notifications.nil? + command.query['sendUpdates'] = send_updates unless send_updates.nil? command.query['supportsAttachments'] = supports_attachments unless supports_attachments.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? diff --git a/generated/google/apis/cloudasset_v1beta1.rb b/generated/google/apis/cloudasset_v1beta1.rb new file mode 100644 index 000000000..b63fd7a1b --- /dev/null +++ b/generated/google/apis/cloudasset_v1beta1.rb @@ -0,0 +1,34 @@ +# Copyright 2015 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. + +require 'google/apis/cloudasset_v1beta1/service.rb' +require 'google/apis/cloudasset_v1beta1/classes.rb' +require 'google/apis/cloudasset_v1beta1/representations.rb' + +module Google + module Apis + # Cloud Asset API + # + # The cloud asset API manages the history and inventory of cloud resources. + # + # @see https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview + module CloudassetV1beta1 + VERSION = 'V1beta1' + REVISION = '20181001' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/cloudasset_v1beta1/classes.rb b/generated/google/apis/cloudasset_v1beta1/classes.rb new file mode 100644 index 000000000..21d0dff37 --- /dev/null +++ b/generated/google/apis/cloudasset_v1beta1/classes.rb @@ -0,0 +1,798 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module CloudassetV1beta1 + + # Cloud asset. This includes all Google Cloud Platform resources, + # Cloud IAM policies, and other non-GCP assets. + class Asset + include Google::Apis::Core::Hashable + + # Type of the asset. Example: "google.compute.disk". + # Corresponds to the JSON property `assetType` + # @return [String] + attr_accessor :asset_type + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + # Corresponds to the JSON property `iamPolicy` + # @return [Google::Apis::CloudassetV1beta1::Policy] + attr_accessor :iam_policy + + # The full name of the asset. For example: `//compute.googleapis.com/projects/ + # my_project_123/zones/zone1/instances/instance1`. + # See [Resource Names](https://cloud.google.com/apis/design/resource_names# + # full_resource_name) + # for more information. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Representation of a cloud resource. + # Corresponds to the JSON property `resource` + # @return [Google::Apis::CloudassetV1beta1::Resource] + attr_accessor :resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @asset_type = args[:asset_type] if args.key?(:asset_type) + @iam_policy = args[:iam_policy] if args.key?(:iam_policy) + @name = args[:name] if args.key?(:name) + @resource = args[:resource] if args.key?(:resource) + end + end + + # Specifies the audit configuration for a service. + # The configuration determines which permission types are logged, and what + # identities, if any, are exempted from logging. + # An AuditConfig must have one or more AuditLogConfigs. + # If there are AuditConfigs for both `allServices` and a specific service, + # the union of the two AuditConfigs is used for that service: the log_types + # specified in each AuditConfig are enabled, and the exempted_members in each + # AuditLogConfig are exempted. + # Example Policy with multiple AuditConfigs: + # ` + # "audit_configs": [ + # ` + # "service": "allServices" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # `, + # ` + # "log_type": "ADMIN_READ", + # ` + # ] + # `, + # ` + # "service": "fooservice.googleapis.com" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # `, + # ` + # "log_type": "DATA_WRITE", + # "exempted_members": [ + # "user:bar@gmail.com" + # ] + # ` + # ] + # ` + # ] + # ` + # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ + # logging. It also exempts foo@gmail.com from DATA_READ logging, and + # bar@gmail.com from DATA_WRITE logging. + class AuditConfig + include Google::Apis::Core::Hashable + + # The configuration for logging of each type of permission. + # Corresponds to the JSON property `auditLogConfigs` + # @return [Array] + attr_accessor :audit_log_configs + + # Specifies a service that will be enabled for audit logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # Corresponds to the JSON property `service` + # @return [String] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs) + @service = args[:service] if args.key?(:service) + end + end + + # Provides the configuration for logging a type of permissions. + # Example: + # ` + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # ` + # ] + # ` + # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting + # foo@gmail.com from DATA_READ logging. + class AuditLogConfig + include Google::Apis::Core::Hashable + + # Specifies the identities that do not cause logging for this type of + # permission. + # Follows the same format of Binding.members. + # Corresponds to the JSON property `exemptedMembers` + # @return [Array] + attr_accessor :exempted_members + + # The log type that this config enables. + # Corresponds to the JSON property `logType` + # @return [String] + attr_accessor :log_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exempted_members = args[:exempted_members] if args.key?(:exempted_members) + @log_type = args[:log_type] if args.key?(:log_type) + end + end + + # Batch get assets history response. + class BatchGetAssetsHistoryResponse + include Google::Apis::Core::Hashable + + # A list of assets with valid time windows. + # Corresponds to the JSON property `assets` + # @return [Array] + attr_accessor :assets + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @assets = args[:assets] if args.key?(:assets) + end + end + + # Associates `members` with a `role`. + class Binding + include Google::Apis::Core::Hashable + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + # Corresponds to the JSON property `condition` + # @return [Google::Apis::CloudassetV1beta1::Expr] + attr_accessor :condition + + # Specifies the identities requesting access for a Cloud Platform resource. + # `members` can have the following values: + # * `allUsers`: A special identifier that represents anyone who is + # on the internet; with or without a Google account. + # * `allAuthenticatedUsers`: A special identifier that represents anyone + # who is authenticated with a Google account or a service account. + # * `user:`emailid``: An email address that represents a specific Google + # account. For example, `alice@gmail.com` . + # * `serviceAccount:`emailid``: An email address that represents a service + # account. For example, `my-other-app@appspot.gserviceaccount.com`. + # * `group:`emailid``: An email address that represents a Google group. + # For example, `admins@example.com`. + # * `domain:`domain``: A Google Apps domain name that represents all the + # users of that domain. For example, `google.com` or `example.com`. + # Corresponds to the JSON property `members` + # @return [Array] + attr_accessor :members + + # Role that is assigned to `members`. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # Corresponds to the JSON property `role` + # @return [String] + attr_accessor :role + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @condition = args[:condition] if args.key?(:condition) + @members = args[:members] if args.key?(:members) + @role = args[:role] if args.key?(:role) + end + end + + # Export asset request. + class ExportAssetsRequest + include Google::Apis::Core::Hashable + + # A list of asset types of which to take a snapshot for. For example: + # "google.compute.disk". If specified, only matching assets will be returned. + # Corresponds to the JSON property `assetTypes` + # @return [Array] + attr_accessor :asset_types + + # Asset content type. If not specified, no content but the asset name will be + # returned. + # Corresponds to the JSON property `contentType` + # @return [String] + attr_accessor :content_type + + # Output configuration for export assets destination. + # Corresponds to the JSON property `outputConfig` + # @return [Google::Apis::CloudassetV1beta1::OutputConfig] + attr_accessor :output_config + + # Timestamp to take an asset snapshot. This can only be set to a timestamp in + # the past or of the current time. If not specified, the current time will be + # used. Due to delays in resource data collection and indexing, there is a + # volatile window during which running the same query may get different + # results. + # Corresponds to the JSON property `readTime` + # @return [String] + attr_accessor :read_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @asset_types = args[:asset_types] if args.key?(:asset_types) + @content_type = args[:content_type] if args.key?(:content_type) + @output_config = args[:output_config] if args.key?(:output_config) + @read_time = args[:read_time] if args.key?(:read_time) + end + end + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + class Expr + include Google::Apis::Core::Hashable + + # An optional description of the expression. This is a longer text which + # describes the expression, e.g. when hovered over it in a UI. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Textual representation of an expression in + # Common Expression Language syntax. + # The application context of the containing message determines which + # well-known feature set of CEL is supported. + # Corresponds to the JSON property `expression` + # @return [String] + attr_accessor :expression + + # An optional string indicating the location of the expression for error + # reporting, e.g. a file name and a position in the file. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # An optional title for the expression, i.e. a short string describing + # its purpose. This can be used e.g. in UIs which allow to enter the + # expression. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @expression = args[:expression] if args.key?(:expression) + @location = args[:location] if args.key?(:location) + @title = args[:title] if args.key?(:title) + end + end + + # A Cloud Storage location. + class GcsDestination + include Google::Apis::Core::Hashable + + # The path of the Cloud Storage objects. It's the same path that is used by + # gsutil. For example: "gs://bucket_name/object_path". See [Viewing and Editing + # Object Metadata](https://cloud.google.com/storage/docs/viewing-editing- + # metadata) + # for more information. + # Corresponds to the JSON property `uri` + # @return [String] + attr_accessor :uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @uri = args[:uri] if args.key?(:uri) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class Operation + include Google::Apis::Core::Hashable + + # If the value is `false`, it means the operation is still in progress. + # If `true`, the operation is completed, and either `error` or `response` is + # available. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::CloudassetV1beta1::Status] + attr_accessor :error + + # Service-specific metadata associated with the operation. It typically + # contains progress information and common metadata such as create time. + # Some services might not provide such metadata. Any method that returns a + # long-running operation should document the metadata type, if any. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # The server-assigned name, which is only unique within the same service that + # originally returns it. If you use the default HTTP mapping, the + # `name` should have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # Output configuration for export assets destination. + class OutputConfig + include Google::Apis::Core::Hashable + + # A Cloud Storage location. + # Corresponds to the JSON property `gcsDestination` + # @return [Google::Apis::CloudassetV1beta1::GcsDestination] + attr_accessor :gcs_destination + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @gcs_destination = args[:gcs_destination] if args.key?(:gcs_destination) + end + end + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + class Policy + include Google::Apis::Core::Hashable + + # Specifies cloud audit logging configuration for this policy. + # Corresponds to the JSON property `auditConfigs` + # @return [Array] + attr_accessor :audit_configs + + # Associates a list of `members` to a `role`. + # `bindings` with no members will result in an error. + # Corresponds to the JSON property `bindings` + # @return [Array] + attr_accessor :bindings + + # `etag` is used for optimistic concurrency control as a way to help + # prevent simultaneous updates of a policy from overwriting each other. + # It is strongly suggested that systems make use of the `etag` in the + # read-modify-write cycle to perform policy updates in order to avoid race + # conditions: An `etag` is returned in the response to `getIamPolicy`, and + # systems are expected to put that etag in the request to `setIamPolicy` to + # ensure that their change will be applied to the same version of the policy. + # If no `etag` is provided in the call to `setIamPolicy`, then the existing + # policy is overwritten blindly. + # Corresponds to the JSON property `etag` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :etag + + # Deprecated. + # Corresponds to the JSON property `version` + # @return [Fixnum] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_configs = args[:audit_configs] if args.key?(:audit_configs) + @bindings = args[:bindings] if args.key?(:bindings) + @etag = args[:etag] if args.key?(:etag) + @version = args[:version] if args.key?(:version) + end + end + + # Representation of a cloud resource. + class Resource + include Google::Apis::Core::Hashable + + # The content of the resource, in which some sensitive fields are scrubbed + # away and may not be present. + # Corresponds to the JSON property `data` + # @return [Hash] + attr_accessor :data + + # The URL of the discovery document containing the resource's JSON schema. + # For example: + # `"https://www.googleapis.com/discovery/v1/apis/compute/v1/rest"`. + # It will be left unspecified for resources without a discovery-based API, + # such as Cloud Bigtable. + # Corresponds to the JSON property `discoveryDocumentUri` + # @return [String] + attr_accessor :discovery_document_uri + + # The JSON schema name listed in the discovery document. + # Example: "Project". It will be left unspecified for resources (such as + # Cloud Bigtable) without a discovery-based API. + # Corresponds to the JSON property `discoveryName` + # @return [String] + attr_accessor :discovery_name + + # The full name of the immediate parent of this resource. See + # [Resource Names](https://cloud.google.com/apis/design/resource_names# + # full_resource_name) + # for more information. + # For GCP assets, it is the parent resource defined in the [Cloud IAM policy + # hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy). + # For example: `"//cloudresourcemanager.googleapis.com/projects/my_project_123"`. + # For third-party assets, it is up to the users to define. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + # The REST URL for accessing the resource. An HTTP GET operation using this + # URL returns the resource itself. + # Example: + # `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`. + # It will be left unspecified for resources without a REST API. + # Corresponds to the JSON property `resourceUrl` + # @return [String] + attr_accessor :resource_url + + # The API version. Example: "v1". + # Corresponds to the JSON property `version` + # @return [String] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @data = args[:data] if args.key?(:data) + @discovery_document_uri = args[:discovery_document_uri] if args.key?(:discovery_document_uri) + @discovery_name = args[:discovery_name] if args.key?(:discovery_name) + @parent = args[:parent] if args.key?(:parent) + @resource_url = args[:resource_url] if args.key?(:resource_url) + @version = args[:version] if args.key?(:version) + end + end + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class Status + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # A developer-facing error message, which should be in English. Any + # user-facing error message should be localized and sent in the + # google.rpc.Status.details field, or localized by the client. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # Temporal asset. In addition to the asset, the temporal asset includes the + # status of the asset and valid from and to time of it. + class TemporalAsset + include Google::Apis::Core::Hashable + + # Cloud asset. This includes all Google Cloud Platform resources, + # Cloud IAM policies, and other non-GCP assets. + # Corresponds to the JSON property `asset` + # @return [Google::Apis::CloudassetV1beta1::Asset] + attr_accessor :asset + + # If the asset is deleted or not. + # Corresponds to the JSON property `deleted` + # @return [Boolean] + attr_accessor :deleted + alias_method :deleted?, :deleted + + # A time window of [start_time, end_time). + # Corresponds to the JSON property `window` + # @return [Google::Apis::CloudassetV1beta1::TimeWindow] + attr_accessor :window + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @asset = args[:asset] if args.key?(:asset) + @deleted = args[:deleted] if args.key?(:deleted) + @window = args[:window] if args.key?(:window) + end + end + + # A time window of [start_time, end_time). + class TimeWindow + include Google::Apis::Core::Hashable + + # End time of the time window (exclusive). + # Current timestamp if not specified. + # Corresponds to the JSON property `endTime` + # @return [String] + attr_accessor :end_time + + # Start time of the time window (inclusive). + # Corresponds to the JSON property `startTime` + # @return [String] + attr_accessor :start_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @end_time = args[:end_time] if args.key?(:end_time) + @start_time = args[:start_time] if args.key?(:start_time) + end + end + end + end +end diff --git a/generated/google/apis/cloudasset_v1beta1/representations.rb b/generated/google/apis/cloudasset_v1beta1/representations.rb new file mode 100644 index 000000000..6d6e795b7 --- /dev/null +++ b/generated/google/apis/cloudasset_v1beta1/representations.rb @@ -0,0 +1,263 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module CloudassetV1beta1 + + class Asset + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditLogConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BatchGetAssetsHistoryResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Binding + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ExportAssetsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Expr + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GcsDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Operation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class OutputConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Policy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Resource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Status + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TemporalAsset + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TimeWindow + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Asset + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :asset_type, as: 'assetType' + property :iam_policy, as: 'iamPolicy', class: Google::Apis::CloudassetV1beta1::Policy, decorator: Google::Apis::CloudassetV1beta1::Policy::Representation + + property :name, as: 'name' + property :resource, as: 'resource', class: Google::Apis::CloudassetV1beta1::Resource, decorator: Google::Apis::CloudassetV1beta1::Resource::Representation + + end + end + + class AuditConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_log_configs, as: 'auditLogConfigs', class: Google::Apis::CloudassetV1beta1::AuditLogConfig, decorator: Google::Apis::CloudassetV1beta1::AuditLogConfig::Representation + + property :service, as: 'service' + end + end + + class AuditLogConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :exempted_members, as: 'exemptedMembers' + property :log_type, as: 'logType' + end + end + + class BatchGetAssetsHistoryResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :assets, as: 'assets', class: Google::Apis::CloudassetV1beta1::TemporalAsset, decorator: Google::Apis::CloudassetV1beta1::TemporalAsset::Representation + + end + end + + class Binding + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :condition, as: 'condition', class: Google::Apis::CloudassetV1beta1::Expr, decorator: Google::Apis::CloudassetV1beta1::Expr::Representation + + collection :members, as: 'members' + property :role, as: 'role' + end + end + + class ExportAssetsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :asset_types, as: 'assetTypes' + property :content_type, as: 'contentType' + property :output_config, as: 'outputConfig', class: Google::Apis::CloudassetV1beta1::OutputConfig, decorator: Google::Apis::CloudassetV1beta1::OutputConfig::Representation + + property :read_time, as: 'readTime' + end + end + + class Expr + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :expression, as: 'expression' + property :location, as: 'location' + property :title, as: 'title' + end + end + + class GcsDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :uri, as: 'uri' + end + end + + class Operation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::CloudassetV1beta1::Status, decorator: Google::Apis::CloudassetV1beta1::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class OutputConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :gcs_destination, as: 'gcsDestination', class: Google::Apis::CloudassetV1beta1::GcsDestination, decorator: Google::Apis::CloudassetV1beta1::GcsDestination::Representation + + end + end + + class Policy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_configs, as: 'auditConfigs', class: Google::Apis::CloudassetV1beta1::AuditConfig, decorator: Google::Apis::CloudassetV1beta1::AuditConfig::Representation + + collection :bindings, as: 'bindings', class: Google::Apis::CloudassetV1beta1::Binding, decorator: Google::Apis::CloudassetV1beta1::Binding::Representation + + property :etag, :base64 => true, as: 'etag' + property :version, as: 'version' + end + end + + class Resource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :data, as: 'data' + property :discovery_document_uri, as: 'discoveryDocumentUri' + property :discovery_name, as: 'discoveryName' + property :parent, as: 'parent' + property :resource_url, as: 'resourceUrl' + property :version, as: 'version' + end + end + + class Status + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class TemporalAsset + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :asset, as: 'asset', class: Google::Apis::CloudassetV1beta1::Asset, decorator: Google::Apis::CloudassetV1beta1::Asset::Representation + + property :deleted, as: 'deleted' + property :window, as: 'window', class: Google::Apis::CloudassetV1beta1::TimeWindow, decorator: Google::Apis::CloudassetV1beta1::TimeWindow::Representation + + end + end + + class TimeWindow + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :end_time, as: 'endTime' + property :start_time, as: 'startTime' + end + end + end + end +end diff --git a/generated/google/apis/cloudasset_v1beta1/service.rb b/generated/google/apis/cloudasset_v1beta1/service.rb new file mode 100644 index 000000000..78f000687 --- /dev/null +++ b/generated/google/apis/cloudasset_v1beta1/service.rb @@ -0,0 +1,313 @@ +# Copyright 2015 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. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module CloudassetV1beta1 + # Cloud Asset API + # + # The cloud asset API manages the history and inventory of cloud resources. + # + # @example + # require 'google/apis/cloudasset_v1beta1' + # + # Cloudasset = Google::Apis::CloudassetV1beta1 # Alias the module + # service = Cloudasset::CloudAssetService.new + # + # @see https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview + class CloudAssetService < Google::Apis::Core::BaseService + # @return [String] + # API key. Your API key identifies your project and provides you with API access, + # quota, and reports. Required unless you provide an OAuth 2.0 token. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + attr_accessor :quota_user + + def initialize + super('https://cloudasset.googleapis.com/', '') + @batch_path = 'batch' + end + + # Batch gets the update history of assets that overlap a time window. + # For RESOURCE content, this API outputs history with asset in both + # non-delete or deleted status. + # For IAM_POLICY content, this API outputs history when the asset and its + # attached IAM POLICY both exist. This can create gaps in the output history. + # @param [String] parent + # Required. The relative name of the root asset. It can only be an + # organization number (such as "organizations/123"), a project ID (such as + # "projects/my-project-id")", or a project number (such as "projects/12345"). + # @param [Array, String] asset_names + # A list of the full names of the assets. For example: + # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/ + # instance1`. + # See [Resource Names](https://cloud.google.com/apis/design/resource_names# + # full_resource_name) + # for more info. + # The request becomes a no-op if the asset name list is empty, and the max + # size of the asset name list is 100 in one request. + # @param [String] content_type + # Required. The content type. + # @param [String] read_time_window_end_time + # End time of the time window (exclusive). + # Current timestamp if not specified. + # @param [String] read_time_window_start_time + # Start time of the time window (inclusive). + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_organization_get_assets_history(parent, asset_names: nil, content_type: nil, read_time_window_end_time: nil, read_time_window_start_time: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}:batchGetAssetsHistory', options) + command.response_representation = Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse::Representation + command.response_class = Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse + command.params['parent'] = parent unless parent.nil? + command.query['assetNames'] = asset_names unless asset_names.nil? + command.query['contentType'] = content_type unless content_type.nil? + command.query['readTimeWindow.endTime'] = read_time_window_end_time unless read_time_window_end_time.nil? + command.query['readTimeWindow.startTime'] = read_time_window_start_time unless read_time_window_start_time.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Exports assets with time and resource types to a given Cloud Storage + # location. The output format is newline-delimited JSON. + # This API implements the google.longrunning.Operation API allowing you + # to keep track of the export. + # @param [String] parent + # Required. The relative name of the root asset. This can only be an + # organization + # number (such as "organizations/123"), a project ID (such as + # "projects/my-project-id"), or a project number (such as "projects/12345"). + # @param [Google::Apis::CloudassetV1beta1::ExportAssetsRequest] export_assets_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def export_organization_assets(parent, export_assets_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}:exportAssets', options) + command.request_representation = Google::Apis::CloudassetV1beta1::ExportAssetsRequest::Representation + command.request_object = export_assets_request_object + command.response_representation = Google::Apis::CloudassetV1beta1::Operation::Representation + command.response_class = Google::Apis::CloudassetV1beta1::Operation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_organization_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::CloudassetV1beta1::Operation::Representation + command.response_class = Google::Apis::CloudassetV1beta1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Batch gets the update history of assets that overlap a time window. + # For RESOURCE content, this API outputs history with asset in both + # non-delete or deleted status. + # For IAM_POLICY content, this API outputs history when the asset and its + # attached IAM POLICY both exist. This can create gaps in the output history. + # @param [String] parent + # Required. The relative name of the root asset. It can only be an + # organization number (such as "organizations/123"), a project ID (such as + # "projects/my-project-id")", or a project number (such as "projects/12345"). + # @param [Array, String] asset_names + # A list of the full names of the assets. For example: + # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/ + # instance1`. + # See [Resource Names](https://cloud.google.com/apis/design/resource_names# + # full_resource_name) + # for more info. + # The request becomes a no-op if the asset name list is empty, and the max + # size of the asset name list is 100 in one request. + # @param [String] content_type + # Required. The content type. + # @param [String] read_time_window_end_time + # End time of the time window (exclusive). + # Current timestamp if not specified. + # @param [String] read_time_window_start_time + # Start time of the time window (inclusive). + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_project_get_assets_history(parent, asset_names: nil, content_type: nil, read_time_window_end_time: nil, read_time_window_start_time: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}:batchGetAssetsHistory', options) + command.response_representation = Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse::Representation + command.response_class = Google::Apis::CloudassetV1beta1::BatchGetAssetsHistoryResponse + command.params['parent'] = parent unless parent.nil? + command.query['assetNames'] = asset_names unless asset_names.nil? + command.query['contentType'] = content_type unless content_type.nil? + command.query['readTimeWindow.endTime'] = read_time_window_end_time unless read_time_window_end_time.nil? + command.query['readTimeWindow.startTime'] = read_time_window_start_time unless read_time_window_start_time.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Exports assets with time and resource types to a given Cloud Storage + # location. The output format is newline-delimited JSON. + # This API implements the google.longrunning.Operation API allowing you + # to keep track of the export. + # @param [String] parent + # Required. The relative name of the root asset. This can only be an + # organization + # number (such as "organizations/123"), a project ID (such as + # "projects/my-project-id"), or a project number (such as "projects/12345"). + # @param [Google::Apis::CloudassetV1beta1::ExportAssetsRequest] export_assets_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def export_project_assets(parent, export_assets_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}:exportAssets', options) + command.request_representation = Google::Apis::CloudassetV1beta1::ExportAssetsRequest::Representation + command.request_object = export_assets_request_object + command.response_representation = Google::Apis::CloudassetV1beta1::Operation::Representation + command.response_class = Google::Apis::CloudassetV1beta1::Operation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::CloudassetV1beta1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::CloudassetV1beta1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::CloudassetV1beta1::Operation::Representation + command.response_class = Google::Apis::CloudassetV1beta1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/datastore_v1.rb b/generated/google/apis/datastore_v1.rb index 4b817ca7c..91ec3277a 100644 --- a/generated/google/apis/datastore_v1.rb +++ b/generated/google/apis/datastore_v1.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/datastore/ module DatastoreV1 VERSION = 'V1' - REVISION = '20180725' + REVISION = '20180919' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/datastore_v1/classes.rb b/generated/google/apis/datastore_v1/classes.rb index 00565a290..863ce08f7 100644 --- a/generated/google/apis/datastore_v1/classes.rb +++ b/generated/google/apis/datastore_v1/classes.rb @@ -67,8 +67,8 @@ module Google include Google::Apis::Core::Hashable # Values in the array. - # The order of this array may not be preserved if it contains a mix of - # indexed and unindexed values. + # The order of values in an array is preserved as long as all values have + # identical settings for 'exclude_from_indexes'. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values diff --git a/generated/google/apis/datastore_v1beta3.rb b/generated/google/apis/datastore_v1beta3.rb index dc9dcf527..f5e4e4802 100644 --- a/generated/google/apis/datastore_v1beta3.rb +++ b/generated/google/apis/datastore_v1beta3.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/datastore/ module DatastoreV1beta3 VERSION = 'V1beta3' - REVISION = '20180725' + REVISION = '20180919' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/datastore_v1beta3/classes.rb b/generated/google/apis/datastore_v1beta3/classes.rb index 82273dc94..1d618e5a1 100644 --- a/generated/google/apis/datastore_v1beta3/classes.rb +++ b/generated/google/apis/datastore_v1beta3/classes.rb @@ -67,8 +67,8 @@ module Google include Google::Apis::Core::Hashable # Values in the array. - # The order of this array may not be preserved if it contains a mix of - # indexed and unindexed values. + # The order of values in an array is preserved as long as all values have + # identical settings for 'exclude_from_indexes'. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values diff --git a/generated/google/apis/firebasedynamiclinks_v1.rb b/generated/google/apis/firebasedynamiclinks_v1.rb index b853713bc..d16551446 100644 --- a/generated/google/apis/firebasedynamiclinks_v1.rb +++ b/generated/google/apis/firebasedynamiclinks_v1.rb @@ -25,7 +25,7 @@ module Google # @see https://firebase.google.com/docs/dynamic-links/ module FirebasedynamiclinksV1 VERSION = 'V1' - REVISION = '20180830' + REVISION = '20181002' # View and administer all your Firebase data and settings AUTH_FIREBASE = 'https://www.googleapis.com/auth/firebase' diff --git a/generated/google/apis/firebasedynamiclinks_v1/classes.rb b/generated/google/apis/firebasedynamiclinks_v1/classes.rb index ab13b544d..0a8eb97a9 100644 --- a/generated/google/apis/firebasedynamiclinks_v1/classes.rb +++ b/generated/google/apis/firebasedynamiclinks_v1/classes.rb @@ -113,6 +113,11 @@ module Google # @return [String] attr_accessor :name + # Google SDK version. Version takes the form "$major.$minor.$patch" + # Corresponds to the JSON property `sdkVersion` + # @return [String] + attr_accessor :sdk_version + # Short Dynamic Link suffix. # Corresponds to the JSON property `suffix` # @return [Google::Apis::FirebasedynamiclinksV1::Suffix] @@ -127,6 +132,7 @@ module Google @dynamic_link_info = args[:dynamic_link_info] if args.key?(:dynamic_link_info) @long_dynamic_link = args[:long_dynamic_link] if args.key?(:long_dynamic_link) @name = args[:name] if args.key?(:name) + @sdk_version = args[:sdk_version] if args.key?(:sdk_version) @suffix = args[:suffix] if args.key?(:suffix) end end @@ -180,6 +186,11 @@ module Google # @return [String] attr_accessor :long_dynamic_link + # Google SDK version. Version takes the form "$major.$minor.$patch" + # Corresponds to the JSON property `sdkVersion` + # @return [String] + attr_accessor :sdk_version + # Short Dynamic Link suffix. # Corresponds to the JSON property `suffix` # @return [Google::Apis::FirebasedynamiclinksV1::Suffix] @@ -193,6 +204,7 @@ module Google def update!(**args) @dynamic_link_info = args[:dynamic_link_info] if args.key?(:dynamic_link_info) @long_dynamic_link = args[:long_dynamic_link] if args.key?(:long_dynamic_link) + @sdk_version = args[:sdk_version] if args.key?(:sdk_version) @suffix = args[:suffix] if args.key?(:suffix) end end @@ -500,7 +512,7 @@ module Google # @return [String] attr_accessor :retrieval_method - # Google SDK version. + # Google SDK version. Version takes the form "$major.$minor.$patch" # Corresponds to the JSON property `sdkVersion` # @return [String] attr_accessor :sdk_version @@ -674,6 +686,11 @@ module Google # @return [String] attr_accessor :requested_link + # Google SDK version. Version takes the form "$major.$minor.$patch" + # Corresponds to the JSON property `sdkVersion` + # @return [String] + attr_accessor :sdk_version + def initialize(**args) update!(**args) end @@ -682,6 +699,7 @@ module Google def update!(**args) @bundle_id = args[:bundle_id] if args.key?(:bundle_id) @requested_link = args[:requested_link] if args.key?(:requested_link) + @sdk_version = args[:sdk_version] if args.key?(:sdk_version) end end diff --git a/generated/google/apis/firebasedynamiclinks_v1/representations.rb b/generated/google/apis/firebasedynamiclinks_v1/representations.rb index 8a2ebcb61..0b260f7be 100644 --- a/generated/google/apis/firebasedynamiclinks_v1/representations.rb +++ b/generated/google/apis/firebasedynamiclinks_v1/representations.rb @@ -187,6 +187,7 @@ module Google property :long_dynamic_link, as: 'longDynamicLink' property :name, as: 'name' + property :sdk_version, as: 'sdkVersion' property :suffix, as: 'suffix', class: Google::Apis::FirebasedynamiclinksV1::Suffix, decorator: Google::Apis::FirebasedynamiclinksV1::Suffix::Representation end @@ -209,6 +210,7 @@ module Google property :dynamic_link_info, as: 'dynamicLinkInfo', class: Google::Apis::FirebasedynamiclinksV1::DynamicLinkInfo, decorator: Google::Apis::FirebasedynamiclinksV1::DynamicLinkInfo::Representation property :long_dynamic_link, as: 'longDynamicLink' + property :sdk_version, as: 'sdkVersion' property :suffix, as: 'suffix', class: Google::Apis::FirebasedynamiclinksV1::Suffix, decorator: Google::Apis::FirebasedynamiclinksV1::Suffix::Representation end @@ -331,6 +333,7 @@ module Google class Representation < Google::Apis::Core::JsonRepresentation property :bundle_id, as: 'bundleId' property :requested_link, as: 'requestedLink' + property :sdk_version, as: 'sdkVersion' end end diff --git a/generated/google/apis/firebasedynamiclinks_v1/service.rb b/generated/google/apis/firebasedynamiclinks_v1/service.rb index d1b992db3..e440f48d0 100644 --- a/generated/google/apis/firebasedynamiclinks_v1/service.rb +++ b/generated/google/apis/firebasedynamiclinks_v1/service.rb @@ -130,6 +130,8 @@ module Google # Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz # @param [Fixnum] duration_days # The span of time requested in days. + # @param [String] sdk_version + # Google SDK version. Version takes the form "$major.$minor.$patch" # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user @@ -147,12 +149,13 @@ module Google # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required - def get_link_stats(dynamic_link, duration_days: nil, fields: nil, quota_user: nil, options: nil, &block) + def get_link_stats(dynamic_link, duration_days: nil, sdk_version: nil, fields: nil, quota_user: nil, options: nil, &block) command = make_simple_command(:get, 'v1/{dynamicLink}/linkStats', options) command.response_representation = Google::Apis::FirebasedynamiclinksV1::DynamicLinkStats::Representation command.response_class = Google::Apis::FirebasedynamiclinksV1::DynamicLinkStats command.params['dynamicLink'] = dynamic_link unless dynamic_link.nil? command.query['durationDays'] = duration_days unless duration_days.nil? + command.query['sdkVersion'] = sdk_version unless sdk_version.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? execute_or_queue_command(command, &block) diff --git a/generated/google/apis/firestore_v1beta2.rb b/generated/google/apis/firestore_v1beta2.rb index 76cd5385f..f8863e1d2 100644 --- a/generated/google/apis/firestore_v1beta2.rb +++ b/generated/google/apis/firestore_v1beta2.rb @@ -26,7 +26,7 @@ module Google # @see https://cloud.google.com/firestore module FirestoreV1beta2 VERSION = 'V1beta2' - REVISION = '20180910' + REVISION = '20180919' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/firestore_v1beta2/service.rb b/generated/google/apis/firestore_v1beta2/service.rb index 0827f7b1a..435457064 100644 --- a/generated/google/apis/firestore_v1beta2/service.rb +++ b/generated/google/apis/firestore_v1beta2/service.rb @@ -48,86 +48,6 @@ module Google @batch_path = 'batch' end - # Creates a composite index. This returns a google.longrunning.Operation - # which may be used to track the status of the creation. The metadata for - # the operation will be the type IndexOperationMetadata. - # @param [String] parent - # A parent name of the form - # `projects/`project_id`/databases/`database_id`/collectionGroups/`collection_id` - # ` - # @param [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2Index] google_firestore_admin_v1beta2_index_object - # @param [String] fields - # Selector specifying which fields to include in a partial response. - # @param [String] quota_user - # Available to use for quota purposes for server-side applications. Can be any - # arbitrary string assigned to a user, but should not exceed 40 characters. - # @param [Google::Apis::RequestOptions] options - # Request-specific options - # - # @yield [result, err] Result & error if block supplied - # @yieldparam result [Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation] - # - # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried - # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification - # @raise [Google::Apis::AuthorizationError] Authorization is required - def create_project_database_collection_group_index(parent, google_firestore_admin_v1beta2_index_object = nil, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:post, 'v1beta2/{+parent}/indexes', options) - command.request_representation = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2Index::Representation - command.request_object = google_firestore_admin_v1beta2_index_object - command.response_representation = Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation::Representation - command.response_class = Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation - command.params['parent'] = parent unless parent.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - - # Lists composite indexes. - # @param [String] parent - # A parent name of the form - # `projects/`project_id`/databases/`database_id`/collectionGroups/`collection_id` - # ` - # @param [String] filter - # The filter to apply to list results. - # @param [Fixnum] page_size - # The number of results to return. - # @param [String] page_token - # A page token, returned from a previous call to - # FirestoreAdmin.ListIndexes, that may be used to get the next - # page of results. - # @param [String] fields - # Selector specifying which fields to include in a partial response. - # @param [String] quota_user - # Available to use for quota purposes for server-side applications. Can be any - # arbitrary string assigned to a user, but should not exceed 40 characters. - # @param [Google::Apis::RequestOptions] options - # Request-specific options - # - # @yield [result, err] Result & error if block supplied - # @yieldparam result [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse] parsed result object - # @yieldparam err [StandardError] error object if request failed - # - # @return [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse] - # - # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried - # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification - # @raise [Google::Apis::AuthorizationError] Authorization is required - def list_project_database_collection_group_indexes(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) - command = make_simple_command(:get, 'v1beta2/{+parent}/indexes', options) - command.response_representation = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse::Representation - command.response_class = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse - command.params['parent'] = parent unless parent.nil? - command.query['filter'] = filter unless filter.nil? - command.query['pageSize'] = page_size unless page_size.nil? - command.query['pageToken'] = page_token unless page_token.nil? - command.query['fields'] = fields unless fields.nil? - command.query['quotaUser'] = quota_user unless quota_user.nil? - execute_or_queue_command(command, &block) - end - # Gets the metadata and configuration for a Field. # @param [String] name # A name of the form @@ -282,6 +202,43 @@ module Google execute_or_queue_command(command, &block) end + # Creates a composite index. This returns a google.longrunning.Operation + # which may be used to track the status of the creation. The metadata for + # the operation will be the type IndexOperationMetadata. + # @param [String] parent + # A parent name of the form + # `projects/`project_id`/databases/`database_id`/collectionGroups/`collection_id` + # ` + # @param [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2Index] google_firestore_admin_v1beta2_index_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_database_collection_group_index(parent, google_firestore_admin_v1beta2_index_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta2/{+parent}/indexes', options) + command.request_representation = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2Index::Representation + command.request_object = google_firestore_admin_v1beta2_index_object + command.response_representation = Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::FirestoreV1beta2::GoogleLongrunningOperation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + # Deletes a composite index. # @param [String] name # A name of the form @@ -345,6 +302,49 @@ module Google command.query['quotaUser'] = quota_user unless quota_user.nil? execute_or_queue_command(command, &block) end + + # Lists composite indexes. + # @param [String] parent + # A parent name of the form + # `projects/`project_id`/databases/`database_id`/collectionGroups/`collection_id` + # ` + # @param [String] filter + # The filter to apply to list results. + # @param [Fixnum] page_size + # The number of results to return. + # @param [String] page_token + # A page token, returned from a previous call to + # FirestoreAdmin.ListIndexes, that may be used to get the next + # page of results. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_database_collection_group_indexes(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta2/{+parent}/indexes', options) + command.response_representation = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse::Representation + command.response_class = Google::Apis::FirestoreV1beta2::GoogleFirestoreAdminV1beta2ListIndexesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end protected diff --git a/generated/google/apis/ml_v1.rb b/generated/google/apis/ml_v1.rb index 064da96a3..1adf1c327 100644 --- a/generated/google/apis/ml_v1.rb +++ b/generated/google/apis/ml_v1.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/ml/ module MlV1 VERSION = 'V1' - REVISION = '20180918' + REVISION = '20180928' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/ml_v1/classes.rb b/generated/google/apis/ml_v1/classes.rb index fdd16c5c3..23796c168 100644 --- a/generated/google/apis/ml_v1/classes.rb +++ b/generated/google/apis/ml_v1/classes.rb @@ -445,7 +445,7 @@ module Google # @return [Hash] attr_accessor :labels - # Represents input parameters for a prediction job. + # Represents input parameters for a prediction job. Next field: 19 # Corresponds to the JSON property `predictionInput` # @return [Google::Apis::MlV1::GoogleCloudMlV1PredictionInput] attr_accessor :prediction_input @@ -927,7 +927,7 @@ module Google end end - # Represents input parameters for a prediction job. + # Represents input parameters for a prediction job. Next field: 19 class GoogleCloudMlV1PredictionInput include Google::Apis::Core::Hashable diff --git a/generated/google/apis/servicenetworking_v1.rb b/generated/google/apis/servicenetworking_v1.rb new file mode 100644 index 000000000..0e6c8e268 --- /dev/null +++ b/generated/google/apis/servicenetworking_v1.rb @@ -0,0 +1,38 @@ +# Copyright 2015 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. + +require 'google/apis/servicenetworking_v1/service.rb' +require 'google/apis/servicenetworking_v1/classes.rb' +require 'google/apis/servicenetworking_v1/representations.rb' + +module Google + module Apis + # Service Networking API + # + # The Service Networking API provides automatic management of network + # configurations necessary for certain services. + # + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + module ServicenetworkingV1 + VERSION = 'V1' + REVISION = '20181001' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + + # Manage your Google API service configuration + AUTH_SERVICE_MANAGEMENT = 'https://www.googleapis.com/auth/service.management' + end + end +end diff --git a/generated/google/apis/servicenetworking_v1/classes.rb b/generated/google/apis/servicenetworking_v1/classes.rb new file mode 100644 index 000000000..2a164ffbe --- /dev/null +++ b/generated/google/apis/servicenetworking_v1/classes.rb @@ -0,0 +1,3392 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1 + + # Message returning the name of the created service subnetwork. + class AddSubnetworkResponse + include Google::Apis::Core::Hashable + + # Subnetwork CIDR range in "10.x.x.x/y" format. + # Corresponds to the JSON property `ipCidrRange` + # @return [String] + attr_accessor :ip_cidr_range + + # Subnetwork name. + # See https://cloud.google.com/compute/docs/vpc/ + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) + @name = args[:name] if args.key?(:name) + end + end + + # Api is a light-weight descriptor for an API Interface. + # Interfaces are also described as "protocol buffer services" in some contexts, + # such as by the "service" keyword in a .proto file, but they are different + # from API Services, which represent a concrete implementation of an interface + # as opposed to simply a description of methods and bindings. They are also + # sometimes simply referred to as "APIs" in other contexts, such as the name of + # this message itself. See https://cloud.google.com/apis/design/glossary for + # detailed terminology. + class Api + include Google::Apis::Core::Hashable + + # The methods of this interface, in unspecified order. + # Corresponds to the JSON property `methods` + # @return [Array] + attr_accessor :methods_prop + + # Included interfaces. See Mixin. + # Corresponds to the JSON property `mixins` + # @return [Array] + attr_accessor :mixins + + # The fully qualified name of this interface, including package name + # followed by the interface's simple name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Any metadata attached to the interface. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1::SourceContext] + attr_accessor :source_context + + # The source syntax of the service. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + # A version string for this interface. If specified, must have the form + # `major-version.minor-version`, as in `1.10`. If the minor version is + # omitted, it defaults to zero. If the entire version field is empty, the + # major version is derived from the package name, as outlined below. If the + # field is not empty, the version in the package name will be verified to be + # consistent with what is provided here. + # The versioning schema uses [semantic + # versioning](http://semver.org) where the major version number + # indicates a breaking change and the minor version an additive, + # non-breaking change. Both version numbers are signals to users + # what to expect from different versions, and should be carefully + # chosen based on the product plan. + # The major version is also reflected in the package name of the + # interface, which must end in `v`, as in + # `google.feature.v1`. For major versions 0 and 1, the suffix can + # be omitted. Zero major versions must only be used for + # experimental, non-GA interfaces. + # Corresponds to the JSON property `version` + # @return [String] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @methods_prop = args[:methods_prop] if args.key?(:methods_prop) + @mixins = args[:mixins] if args.key?(:mixins) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + @version = args[:version] if args.key?(:version) + end + end + + # Configuration for an anthentication provider, including support for + # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- + # token-32). + class AuthProvider + include Google::Apis::Core::Hashable + + # The list of JWT + # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# + # section-4.1.3). + # that are allowed to access. A JWT containing any of these audiences will + # be accepted. When this setting is absent, only JWTs with audience + # "https://Service_name/API_name" + # will be accepted. For example, if no audiences are in the setting, + # LibraryService API will only accept JWTs with the following audience + # "https://library-example.googleapis.com/google.example.library.v1. + # LibraryService". + # Example: + # audiences: bookstore_android.apps.googleusercontent.com, + # bookstore_web.apps.googleusercontent.com + # Corresponds to the JSON property `audiences` + # @return [String] + attr_accessor :audiences + + # Redirect URL if JWT token is required but no present or is expired. + # Implement authorizationUrl of securityDefinitions in OpenAPI spec. + # Corresponds to the JSON property `authorizationUrl` + # @return [String] + attr_accessor :authorization_url + + # The unique identifier of the auth provider. It will be referred to by + # `AuthRequirement.provider_id`. + # Example: "bookstore_auth". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Identifies the principal that issued the JWT. See + # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + # Usually a URL or an email address. + # Example: https://securetoken.google.com + # Example: 1234567-compute@developer.gserviceaccount.com + # Corresponds to the JSON property `issuer` + # @return [String] + attr_accessor :issuer + + # URL of the provider's public key set to validate signature of the JWT. See + # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html# + # ProviderMetadata). + # Optional if the key set document: + # - can be retrieved from + # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0. + # html + # of the issuer. + # - can be inferred from the email domain of the issuer (e.g. a Google service + # account). + # Example: https://www.googleapis.com/oauth2/v1/certs + # Corresponds to the JSON property `jwksUri` + # @return [String] + attr_accessor :jwks_uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audiences = args[:audiences] if args.key?(:audiences) + @authorization_url = args[:authorization_url] if args.key?(:authorization_url) + @id = args[:id] if args.key?(:id) + @issuer = args[:issuer] if args.key?(:issuer) + @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri) + end + end + + # User-defined authentication requirements, including support for + # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- + # token-32). + class AuthRequirement + include Google::Apis::Core::Hashable + + # NOTE: This will be deprecated soon, once AuthProvider.audiences is + # implemented and accepted in all the runtime components. + # The list of JWT + # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# + # section-4.1.3). + # that are allowed to access. A JWT containing any of these audiences will + # be accepted. When this setting is absent, only JWTs with audience + # "https://Service_name/API_name" + # will be accepted. For example, if no audiences are in the setting, + # LibraryService API will only accept JWTs with the following audience + # "https://library-example.googleapis.com/google.example.library.v1. + # LibraryService". + # Example: + # audiences: bookstore_android.apps.googleusercontent.com, + # bookstore_web.apps.googleusercontent.com + # Corresponds to the JSON property `audiences` + # @return [String] + attr_accessor :audiences + + # id from authentication provider. + # Example: + # provider_id: bookstore_auth + # Corresponds to the JSON property `providerId` + # @return [String] + attr_accessor :provider_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audiences = args[:audiences] if args.key?(:audiences) + @provider_id = args[:provider_id] if args.key?(:provider_id) + end + end + + # `Authentication` defines the authentication configuration for an API. + # Example for an API targeted for external use: + # name: calendar.googleapis.com + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + class Authentication + include Google::Apis::Core::Hashable + + # Defines a set of authentication providers that a service supports. + # Corresponds to the JSON property `providers` + # @return [Array] + attr_accessor :providers + + # A list of authentication rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @providers = args[:providers] if args.key?(:providers) + @rules = args[:rules] if args.key?(:rules) + end + end + + # Authentication rules for the service. + # By default, if a method has any authentication requirements, every request + # must include a valid credential matching one of the requirements. + # It's an error to include more than one kind of credential in a single + # request. + # If a method doesn't have any auth requirements, request credentials will be + # ignored. + class AuthenticationRule + include Google::Apis::Core::Hashable + + # If true, the service accepts API keys without any other credential. + # Corresponds to the JSON property `allowWithoutCredential` + # @return [Boolean] + attr_accessor :allow_without_credential + alias_method :allow_without_credential?, :allow_without_credential + + # OAuth scopes are a way to define data and permissions on data. For example, + # there are scopes defined for "Read-only access to Google Calendar" and + # "Access to Cloud Platform". Users can consent to a scope for an application, + # giving it permission to access that data on their behalf. + # OAuth scope specifications should be fairly coarse grained; a user will need + # to see and understand the text description of what your scope means. + # In most cases: use one or at most two OAuth scopes for an entire family of + # products. If your product has multiple APIs, you should probably be sharing + # the OAuth scope across all of those APIs. + # When you need finer grained OAuth consent screens: talk with your product + # management about how developers will use them in practice. + # Please note that even though each of the canonical scopes is enough for a + # request to be accepted and passed to the backend, a request can still fail + # due to the backend requiring additional scopes or permissions. + # Corresponds to the JSON property `oauth` + # @return [Google::Apis::ServicenetworkingV1::OAuthRequirements] + attr_accessor :oauth + + # Requirements for additional authentication providers. + # Corresponds to the JSON property `requirements` + # @return [Array] + attr_accessor :requirements + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential) + @oauth = args[:oauth] if args.key?(:oauth) + @requirements = args[:requirements] if args.key?(:requirements) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Configuration of authorization. + # This section determines the authorization provider, if unspecified, then no + # authorization check will be done. + # Example: + # experimental: + # authorization: + # provider: firebaserules.googleapis.com + class AuthorizationConfig + include Google::Apis::Core::Hashable + + # The name of the authorization provider, such as + # firebaserules.googleapis.com. + # Corresponds to the JSON property `provider` + # @return [String] + attr_accessor :provider + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @provider = args[:provider] if args.key?(:provider) + end + end + + # `Backend` defines the backend configuration for a service. + class Backend + include Google::Apis::Core::Hashable + + # A list of API backend rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A backend rule provides configuration for an individual API element. + class BackendRule + include Google::Apis::Core::Hashable + + # The address of the API backend. + # Corresponds to the JSON property `address` + # @return [String] + attr_accessor :address + + # The number of seconds to wait for a response from a request. The default + # deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds. + # Corresponds to the JSON property `deadline` + # @return [Float] + attr_accessor :deadline + + # Minimum deadline in seconds needed for this method. Calls having deadline + # value lower than this will be rejected. + # Corresponds to the JSON property `minDeadline` + # @return [Float] + attr_accessor :min_deadline + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @address = args[:address] if args.key?(:address) + @deadline = args[:deadline] if args.key?(:deadline) + @min_deadline = args[:min_deadline] if args.key?(:min_deadline) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Billing related configuration of the service. + # The following example shows how to configure monitored resources and metrics + # for billing: + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/borrowed_count + # metric_kind: DELTA + # value_type: INT64 + # billing: + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/borrowed_count + class Billing + include Google::Apis::Core::Hashable + + # Billing configurations for sending metrics to the consumer project. + # There can be multiple consumer destinations per service, each one must have + # a different monitored resource type. A metric can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + end + end + + # Configuration of a specific billing destination (Currently only support + # bill against consumer project). + class BillingDestination + include Google::Apis::Core::Hashable + + # Names of the metrics to report to this billing destination. + # Each name must be defined in Service.metrics section. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # The monitored resource type. The type must be defined in + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # The request message for Operations.CancelOperation. + class CancelOperationRequest + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # `Context` defines which contexts an API requests. + # Example: + # context: + # rules: + # - selector: "*" + # requested: + # - google.rpc.context.ProjectContext + # - google.rpc.context.OriginContext + # The above specifies that all methods in the API request + # `google.rpc.context.ProjectContext` and + # `google.rpc.context.OriginContext`. + # Available context types are defined in package + # `google.rpc.context`. + # This also provides mechanism to whitelist any protobuf message extension that + # can be sent in grpc metadata using “x-goog-ext--bin” and + # “x-goog-ext--jspb” format. For example, list any service + # specific protobuf types that can appear in grpc metadata as follows in your + # yaml file: + # Example: + # context: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allowed_request_extensions: + # - google.foo.v1.NewExtension + # allowed_response_extensions: + # - google.foo.v1.NewExtension + # You can also specify extension ID instead of fully qualified extension name + # here. + class Context + include Google::Apis::Core::Hashable + + # A list of RPC context rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A context rule provides information about the context for an individual API + # element. + class ContextRule + include Google::Apis::Core::Hashable + + # A list of full type names or extension IDs of extensions allowed in grpc + # side channel from client to backend. + # Corresponds to the JSON property `allowedRequestExtensions` + # @return [Array] + attr_accessor :allowed_request_extensions + + # A list of full type names or extension IDs of extensions allowed in grpc + # side channel from backend to client. + # Corresponds to the JSON property `allowedResponseExtensions` + # @return [Array] + attr_accessor :allowed_response_extensions + + # A list of full type names of provided contexts. + # Corresponds to the JSON property `provided` + # @return [Array] + attr_accessor :provided + + # A list of full type names of requested contexts. + # Corresponds to the JSON property `requested` + # @return [Array] + attr_accessor :requested + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions) + @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions) + @provided = args[:provided] if args.key?(:provided) + @requested = args[:requested] if args.key?(:requested) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Selects and configures the service controller used by the service. The + # service controller handles features like abuse, quota, billing, logging, + # monitoring, etc. + class Control + include Google::Apis::Core::Hashable + + # The service control environment to use. If empty, no control plane + # feature (like quota and billing) will be enabled. + # Corresponds to the JSON property `environment` + # @return [String] + attr_accessor :environment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @environment = args[:environment] if args.key?(:environment) + end + end + + # Customize service error responses. For example, list any service + # specific protobuf types that can appear in error detail lists of + # error responses. + # Example: + # custom_error: + # types: + # - google.foo.v1.CustomError + # - google.foo.v1.AnotherError + class CustomError + include Google::Apis::Core::Hashable + + # The list of custom error rules that apply to individual API messages. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. + # Corresponds to the JSON property `types` + # @return [Array] + attr_accessor :types + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + @types = args[:types] if args.key?(:types) + end + end + + # A custom error rule. + class CustomErrorRule + include Google::Apis::Core::Hashable + + # Mark this message as possible payload in error response. Otherwise, + # objects of this type will be filtered when they appear in error payload. + # Corresponds to the JSON property `isErrorType` + # @return [Boolean] + attr_accessor :is_error_type + alias_method :is_error_type?, :is_error_type + + # Selects messages to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @is_error_type = args[:is_error_type] if args.key?(:is_error_type) + @selector = args[:selector] if args.key?(:selector) + end + end + + # A custom pattern is used for defining custom HTTP verb. + class CustomHttpPattern + include Google::Apis::Core::Hashable + + # The name of this custom HTTP verb. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The path matched by this custom verb. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @kind = args[:kind] if args.key?(:kind) + @path = args[:path] if args.key?(:path) + end + end + + # `Documentation` provides the information for describing a service. + # Example: + #
documentation:
+      # summary: >
+      # The Google Calendar API gives access
+      # to most calendar features.
+      # pages:
+      # - name: Overview
+      # content: (== include google/foo/overview.md ==)
+      # - name: Tutorial
+      # content: (== include google/foo/tutorial.md ==)
+      # subpages;
+      # - name: Java
+      # content: (== include google/foo/tutorial_java.md ==)
+      # rules:
+      # - selector: google.calendar.Calendar.Get
+      # description: >
+      # ...
+      # - selector: google.calendar.Calendar.Put
+      # description: >
+      # ...
+      # 
+ # Documentation is provided in markdown syntax. In addition to + # standard markdown features, definition lists, tables and fenced + # code blocks are supported. Section headers can be provided and are + # interpreted relative to the section nesting of the context where + # a documentation fragment is embedded. + # Documentation from the IDL is merged with documentation defined + # via the config at normalization time, where documentation provided + # by config rules overrides IDL provided. + # A number of constructs specific to the API platform are supported + # in documentation text. + # In order to reference a proto element, the following + # notation can be used: + #
[fully.qualified.proto.name][]
+ # To override the display text used for the link, this can be used: + #
[display text][fully.qualified.proto.name]
+ # Text can be excluded from doc using the following notation: + #
(-- internal comment --)
+ # A few directives are available in documentation. Note that + # directives must appear on a single line to be properly + # identified. The `include` directive includes a markdown file from + # an external source: + #
(== include path/to/file ==)
+ # The `resource_for` directive marks a message to be the resource of + # a collection in REST view. If it is not specified, tools attempt + # to infer the resource from the operations in a collection: + #
(== resource_for v1.shelves.books ==)
+ # The directive `suppress_warning` does not directly affect documentation + # and is documented together with service config validation. + class Documentation + include Google::Apis::Core::Hashable + + # The URL to the root of documentation. + # Corresponds to the JSON property `documentationRootUrl` + # @return [String] + attr_accessor :documentation_root_url + + # Declares a single overview page. For example: + #
documentation:
+        # summary: ...
+        # overview: (== include overview.md ==)
+        # 
+ # This is a shortcut for the following declaration (using pages style): + #
documentation:
+        # summary: ...
+        # pages:
+        # - name: Overview
+        # content: (== include overview.md ==)
+        # 
+ # Note: you cannot specify both `overview` field and `pages` field. + # Corresponds to the JSON property `overview` + # @return [String] + attr_accessor :overview + + # The top level pages for the documentation set. + # Corresponds to the JSON property `pages` + # @return [Array] + attr_accessor :pages + + # A list of documentation rules that apply to individual API elements. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + # A short summary of what the service does. Can only be provided by + # plain text. + # Corresponds to the JSON property `summary` + # @return [String] + attr_accessor :summary + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url) + @overview = args[:overview] if args.key?(:overview) + @pages = args[:pages] if args.key?(:pages) + @rules = args[:rules] if args.key?(:rules) + @summary = args[:summary] if args.key?(:summary) + end + end + + # A documentation rule provides information about individual API elements. + class DocumentationRule + include Google::Apis::Core::Hashable + + # Deprecation description of the selected element(s). It can be provided if an + # element is marked as `deprecated`. + # Corresponds to the JSON property `deprecationDescription` + # @return [String] + attr_accessor :deprecation_description + + # Description of the selected API(s). + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The selector is a comma-separated list of patterns. Each pattern is a + # qualified name of the element which may end in "*", indicating a wildcard. + # Wildcards are only allowed at the end and for a whole component of the + # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To + # specify a default for all applicable elements, the whole pattern "*" + # is used. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description) + @description = args[:description] if args.key?(:description) + @selector = args[:selector] if args.key?(:selector) + end + end + + # A generic empty message that you can re-use to avoid defining duplicated + # empty messages in your APIs. A typical example is to use it as the request + # or the response type of an API method. For instance: + # service Foo ` + # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + # ` + # The JSON representation for `Empty` is empty JSON object ````. + class Empty + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # `Endpoint` describes a network endpoint that serves a set of APIs. + # A service may expose any number of endpoints, and all endpoints share the + # same service configuration, such as quota configuration and monitoring + # configuration. + # Example service configuration: + # name: library-example.googleapis.com + # endpoints: + # # Below entry makes 'google.example.library.v1.Library' + # # API be served from endpoint address library-example.googleapis.com. + # # It also allows HTTP OPTIONS calls to be passed to the backend, for + # # it to decide whether the subsequent cross-origin request is + # # allowed to proceed. + # - name: library-example.googleapis.com + # allow_cors: true + class Endpoint + include Google::Apis::Core::Hashable + + # DEPRECATED: This field is no longer supported. Instead of using aliases, + # please specify multiple google.api.Endpoint for each of the intended + # aliases. + # Additional names that this endpoint will be hosted on. + # Corresponds to the JSON property `aliases` + # @return [Array] + attr_accessor :aliases + + # Allowing + # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + # cross-domain traffic, would allow the backends served from this endpoint to + # receive and respond to HTTP OPTIONS requests. The response will be used by + # the browser to determine whether the subsequent cross-origin request is + # allowed to proceed. + # Corresponds to the JSON property `allowCors` + # @return [Boolean] + attr_accessor :allow_cors + alias_method :allow_cors?, :allow_cors + + # The list of features enabled on this endpoint. + # Corresponds to the JSON property `features` + # @return [Array] + attr_accessor :features + + # The canonical name of this endpoint. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The specification of an Internet routable address of API frontend that will + # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/ + # glossary). + # It should be either a valid IPv4 address or a fully-qualified domain name. + # For example, "8.8.8.8" or "myservice.appspot.com". + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @aliases = args[:aliases] if args.key?(:aliases) + @allow_cors = args[:allow_cors] if args.key?(:allow_cors) + @features = args[:features] if args.key?(:features) + @name = args[:name] if args.key?(:name) + @target = args[:target] if args.key?(:target) + end + end + + # Enum type definition. + class Enum + include Google::Apis::Core::Hashable + + # Enum value definitions. + # Corresponds to the JSON property `enumvalue` + # @return [Array] + attr_accessor :enumvalue + + # Enum type name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1::SourceContext] + attr_accessor :source_context + + # The source syntax. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @enumvalue = args[:enumvalue] if args.key?(:enumvalue) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Enum value definition. + class EnumValue + include Google::Apis::Core::Hashable + + # Enum value name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Enum value number. + # Corresponds to the JSON property `number` + # @return [Fixnum] + attr_accessor :number + + # Protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @number = args[:number] if args.key?(:number) + @options = args[:options] if args.key?(:options) + end + end + + # Experimental service configuration. These configuration options can + # only be used by whitelisted users. + class Experimental + include Google::Apis::Core::Hashable + + # Configuration of authorization. + # This section determines the authorization provider, if unspecified, then no + # authorization check will be done. + # Example: + # experimental: + # authorization: + # provider: firebaserules.googleapis.com + # Corresponds to the JSON property `authorization` + # @return [Google::Apis::ServicenetworkingV1::AuthorizationConfig] + attr_accessor :authorization + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @authorization = args[:authorization] if args.key?(:authorization) + end + end + + # A single field of a message type. + class Field + include Google::Apis::Core::Hashable + + # The field cardinality. + # Corresponds to the JSON property `cardinality` + # @return [String] + attr_accessor :cardinality + + # The string value of the default value of this field. Proto2 syntax only. + # Corresponds to the JSON property `defaultValue` + # @return [String] + attr_accessor :default_value + + # The field JSON name. + # Corresponds to the JSON property `jsonName` + # @return [String] + attr_accessor :json_name + + # The field type. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The field name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The field number. + # Corresponds to the JSON property `number` + # @return [Fixnum] + attr_accessor :number + + # The index of the field type in `Type.oneofs`, for message or enumeration + # types. The first type has index 1; zero means the type is not in the list. + # Corresponds to the JSON property `oneofIndex` + # @return [Fixnum] + attr_accessor :oneof_index + + # The protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # Whether to use alternative packed wire representation. + # Corresponds to the JSON property `packed` + # @return [Boolean] + attr_accessor :packed + alias_method :packed?, :packed + + # The field type URL, without the scheme, for message or enumeration + # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + # Corresponds to the JSON property `typeUrl` + # @return [String] + attr_accessor :type_url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cardinality = args[:cardinality] if args.key?(:cardinality) + @default_value = args[:default_value] if args.key?(:default_value) + @json_name = args[:json_name] if args.key?(:json_name) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @number = args[:number] if args.key?(:number) + @oneof_index = args[:oneof_index] if args.key?(:oneof_index) + @options = args[:options] if args.key?(:options) + @packed = args[:packed] if args.key?(:packed) + @type_url = args[:type_url] if args.key?(:type_url) + end + end + + # Defines the HTTP configuration for an API service. It contains a list of + # HttpRule, each specifying the mapping of an RPC method + # to one or more HTTP REST API methods. + class Http + include Google::Apis::Core::Hashable + + # When set to true, URL path parmeters will be fully URI-decoded except in + # cases of single segment matches in reserved expansion, where "%2F" will be + # left encoded. + # The default behavior is to not decode RFC 6570 reserved characters in multi + # segment matches. + # Corresponds to the JSON property `fullyDecodeReservedExpansion` + # @return [Boolean] + attr_accessor :fully_decode_reserved_expansion + alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion + + # A list of HTTP configuration rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion) + @rules = args[:rules] if args.key?(:rules) + end + end + + # # gRPC Transcoding + # gRPC Transcoding is a feature for mapping between a gRPC method and one or + # more HTTP REST endpoints. It allows developers to build a single API service + # that supports both gRPC APIs and REST APIs. Many systems, including [Google + # APIs](https://github.com/googleapis/googleapis), + # [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC + # Gateway](https://github.com/grpc-ecosystem/grpc-gateway), + # and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature + # and use it for large scale production services. + # `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies + # how different portions of the gRPC request message are mapped to the URL + # path, URL query parameters, and HTTP request body. It also controls how the + # gRPC response message is mapped to the HTTP response body. `HttpRule` is + # typically specified as an `google.api.http` annotation on the gRPC method. + # Each mapping specifies a URL path template and an HTTP method. The path + # template may refer to one or more fields in the gRPC request message, as long + # as each field is a non-repeated field with a primitive (non-message) type. + # The path template controls how fields of the request message are mapped to + # the URL path. + # Example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get: "/v1/`name=messages/*"`" + # `; + # ` + # ` + # message GetMessageRequest ` + # string name = 1; // Mapped to URL path. + # ` + # message Message ` + # string text = 1; // The resource content. + # ` + # This enables an HTTP REST to gRPC mapping as below: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` + # Any fields in the request message which are not bound by the path template + # automatically become HTTP query parameters if there is no HTTP request body. + # For example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get:"/v1/messages/`message_id`" + # `; + # ` + # ` + # message GetMessageRequest ` + # message SubMessage ` + # string subfield = 1; + # ` + # string message_id = 1; // Mapped to URL path. + # int64 revision = 2; // Mapped to URL query parameter `revision`. + # SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. + # ` + # This enables a HTTP JSON to RPC mapping as below: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: + # "123456" revision: 2 sub: SubMessage(subfield: "foo"))` + # Note that fields which are mapped to URL query parameters must have a + # primitive type or a repeated primitive type or a non-repeated message type. + # In the case of a repeated type, the parameter can be repeated in the URL + # as `...?param=A¶m=B`. In the case of a message type, each field of the + # message is mapped to a separate parameter, such as + # `...?foo.a=A&foo.b=B&foo.c=C`. + # For HTTP methods that allow a request body, the `body` field + # specifies the mapping. Consider a REST update method on the + # message resource collection: + # service Messaging ` + # rpc UpdateMessage(UpdateMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # patch: "/v1/messages/`message_id`" + # body: "message" + # `; + # ` + # ` + # message UpdateMessageRequest ` + # string message_id = 1; // mapped to the URL + # Message message = 2; // mapped to the body + # ` + # The following HTTP JSON to RPC mapping is enabled, where the + # representation of the JSON in the request body is determined by + # protos JSON encoding: + # HTTP | gRPC + # -----|----- + # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " + # 123456" message ` text: "Hi!" `)` + # The special name `*` can be used in the body mapping to define that + # every field not bound by the path template should be mapped to the + # request body. This enables the following alternative definition of + # the update method: + # service Messaging ` + # rpc UpdateMessage(Message) returns (Message) ` + # option (google.api.http) = ` + # patch: "/v1/messages/`message_id`" + # body: "*" + # `; + # ` + # ` + # message Message ` + # string message_id = 1; + # string text = 2; + # ` + # The following HTTP JSON to RPC mapping is enabled: + # HTTP | gRPC + # -----|----- + # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " + # 123456" text: "Hi!")` + # Note that when using `*` in the body mapping, it is not possible to + # have HTTP parameters, as all fields not bound by the path end in + # the body. This makes this option more rarely used in practice when + # defining REST APIs. The common usage of `*` is in custom methods + # which don't use the URL at all for transferring data. + # It is possible to define multiple HTTP methods for one RPC by using + # the `additional_bindings` option. Example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get: "/v1/messages/`message_id`" + # additional_bindings ` + # get: "/v1/users/`user_id`/messages/`message_id`" + # ` + # `; + # ` + # ` + # message GetMessageRequest ` + # string message_id = 1; + # string user_id = 2; + # ` + # This enables the following two alternative HTTP JSON to RPC mappings: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` + # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: " + # 123456")` + # ## Rules for HTTP mapping + # 1. Leaf request fields (recursive expansion nested messages in the request + # message) are classified into three categories: + # - Fields referred by the path template. They are passed via the URL path. + # - Fields referred by the HttpRule.body. They are passed via the HTTP + # request body. + # - All other fields are passed via the URL query parameters, and the + # parameter name is the field path in the request message. A repeated + # field can be represented as multiple query parameters under the same + # name. + # 2. If HttpRule.body is "*", there is no URL query parameter, all fields + # are passed via URL path and HTTP request body. + # 3. If HttpRule.body is omitted, there is no HTTP request body, all + # fields are passed via URL path and URL query parameters. + # ### Path template syntax + # Template = "/" Segments [ Verb ] ; + # Segments = Segment ` "/" Segment ` ; + # Segment = "*" | "**" | LITERAL | Variable ; + # Variable = "`" FieldPath [ "=" Segments ] "`" ; + # FieldPath = IDENT ` "." IDENT ` ; + # Verb = ":" LITERAL ; + # The syntax `*` matches a single URL path segment. The syntax `**` matches + # zero or more URL path segments, which must be the last part of the URL path + # except the `Verb`. + # The syntax `Variable` matches part of the URL path as specified by its + # template. A variable template must not contain other variables. If a variable + # matches a single path segment, its template may be omitted, e.g. ``var`` + # is equivalent to ``var=*``. + # The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` + # contains any reserved character, such characters should be percent-encoded + # before the matching. + # If a variable contains exactly one path segment, such as `"`var`"` or + # `"`var=*`"`, when such a variable is expanded into a URL path on the client + # side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The + # server side does the reverse decoding. Such variables show up in the + # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) + # as ``var``. + # If a variable contains multiple path segments, such as `"`var=foo/*`"` + # or `"`var=**`"`, when such a variable is expanded into a URL path on the + # client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. + # The server side does the reverse decoding, except "%2F" and "%2f" are left + # unchanged. Such variables show up in the + # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) + # as ``+var``. + # ## Using gRPC API Service Configuration + # gRPC API Service Configuration (service config) is a configuration language + # for configuring a gRPC service to become a user-facing product. The + # service config is simply the YAML representation of the `google.api.Service` + # proto message. + # As an alternative to annotating your proto file, you can configure gRPC + # transcoding in your service config YAML files. You do this by specifying a + # `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same + # effect as the proto annotation. This can be particularly useful if you + # have a proto that is reused in multiple services. Note that any transcoding + # specified in the service config will override any matching transcoding + # configuration in the proto. + # Example: + # http: + # rules: + # # Selects a gRPC method and applies HttpRule to it. + # - selector: example.v1.Messaging.GetMessage + # get: /v1/messages/`message_id`/`sub.subfield` + # ## Special notes + # When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the + # proto to JSON conversion must follow the [proto3 + # specification](https://developers.google.com/protocol-buffers/docs/proto3#json) + # . + # While the single segment variable follows the semantics of + # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String + # Expansion, the multi segment variable **does not** follow RFC 6570 Section + # 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion + # does not expand special characters like `?` and `#`, which would lead + # to invalid URLs. As the result, gRPC Transcoding uses a custom encoding + # for multi segment variables. + # The path variables **must not** refer to any repeated or mapped field, + # because client libraries are not capable of handling such variable expansion. + # The path variables **must not** capture the leading "/" character. The reason + # is that the most common use case "`var`" does not capture the leading "/" + # character. For consistency, all path variables must share the same behavior. + # Repeated message fields must not be mapped to URL query parameters, because + # no client library can support such complicated mapping. + # If an API needs to use a JSON array for request or response body, it can map + # the request or response body to a repeated field. However, some gRPC + # Transcoding implementations may not support this feature. + class HttpRule + include Google::Apis::Core::Hashable + + # Additional HTTP bindings for the selector. Nested bindings must + # not contain an `additional_bindings` field themselves (that is, + # the nesting may only be one level deep). + # Corresponds to the JSON property `additionalBindings` + # @return [Array] + attr_accessor :additional_bindings + + # The name of the request field whose value is mapped to the HTTP request + # body, or `*` for mapping all request fields not captured by the path + # pattern to the HTTP body, or omitted for not having any HTTP request body. + # NOTE: the referred field must be present at the top-level of the request + # message type. + # Corresponds to the JSON property `body` + # @return [String] + attr_accessor :body + + # A custom pattern is used for defining custom HTTP verb. + # Corresponds to the JSON property `custom` + # @return [Google::Apis::ServicenetworkingV1::CustomHttpPattern] + attr_accessor :custom + + # Maps to HTTP DELETE. Used for deleting a resource. + # Corresponds to the JSON property `delete` + # @return [String] + attr_accessor :delete + + # Maps to HTTP GET. Used for listing and getting information about + # resources. + # Corresponds to the JSON property `get` + # @return [String] + attr_accessor :get + + # Maps to HTTP PATCH. Used for updating a resource. + # Corresponds to the JSON property `patch` + # @return [String] + attr_accessor :patch + + # Maps to HTTP POST. Used for creating a resource or performing an action. + # Corresponds to the JSON property `post` + # @return [String] + attr_accessor :post + + # Maps to HTTP PUT. Used for replacing a resource. + # Corresponds to the JSON property `put` + # @return [String] + attr_accessor :put + + # Optional. The name of the response field whose value is mapped to the HTTP + # response body. When omitted, the entire response message will be used + # as the HTTP response body. + # NOTE: The referred field must be present at the top-level of the response + # message type. + # Corresponds to the JSON property `responseBody` + # @return [String] + attr_accessor :response_body + + # Selects a method to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings) + @body = args[:body] if args.key?(:body) + @custom = args[:custom] if args.key?(:custom) + @delete = args[:delete] if args.key?(:delete) + @get = args[:get] if args.key?(:get) + @patch = args[:patch] if args.key?(:patch) + @post = args[:post] if args.key?(:post) + @put = args[:put] if args.key?(:put) + @response_body = args[:response_body] if args.key?(:response_body) + @selector = args[:selector] if args.key?(:selector) + end + end + + # A description of a label. + class LabelDescriptor + include Google::Apis::Core::Hashable + + # A human-readable description for the label. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The label key. + # Corresponds to the JSON property `key` + # @return [String] + attr_accessor :key + + # The type of data that can be assigned to the label. + # Corresponds to the JSON property `valueType` + # @return [String] + attr_accessor :value_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @key = args[:key] if args.key?(:key) + @value_type = args[:value_type] if args.key?(:value_type) + end + end + + # The response message for Operations.ListOperations. + class ListOperationsResponse + include Google::Apis::Core::Hashable + + # The standard List next-page token. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # A list of operations that matches the specified filter in the request. + # Corresponds to the JSON property `operations` + # @return [Array] + attr_accessor :operations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @operations = args[:operations] if args.key?(:operations) + end + end + + # A description of a log type. Example in YAML format: + # - name: library.googleapis.com/activity_history + # description: The history of borrowing and returning library items. + # display_name: Activity + # labels: + # - key: /customer_id + # description: Identifier of a library customer + class LogDescriptor + include Google::Apis::Core::Hashable + + # A human-readable description of this log. This information appears in + # the documentation and can contain details. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The human-readable name for this log. This information appears on + # the user interface and should be concise. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The set of labels that are available to describe a specific log entry. + # Runtime requests that contain labels not specified here are + # considered invalid. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # The name of the log. It must be less than 512 characters long and can + # include the following characters: upper- and lower-case alphanumeric + # characters [A-Za-z0-9], and punctuation characters including + # slash, underscore, hyphen, period [/_-.]. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + end + end + + # Logging configuration of the service. + # The following example shows how to configure logs to be sent to the + # producer and consumer projects. In the example, the `activity_history` + # log is sent to both the producer and consumer projects, whereas the + # `purchase_history` log is only sent to the producer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # logs: + # - name: activity_history + # labels: + # - key: /customer_id + # - name: purchase_history + # logging: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # - purchase_history + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + class Logging + include Google::Apis::Core::Hashable + + # Logging configurations for sending logs to the consumer project. + # There can be multiple consumer destinations, each one must have a + # different monitored resource type. A log can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + # Logging configurations for sending logs to the producer project. + # There can be multiple producer destinations, each one must have a + # different monitored resource type. A log can be used in at most + # one producer destination. + # Corresponds to the JSON property `producerDestinations` + # @return [Array] + attr_accessor :producer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) + end + end + + # Configuration of a specific logging destination (the producer project + # or the consumer project). + class LoggingDestination + include Google::Apis::Core::Hashable + + # Names of the logs to be sent to this destination. Each name must + # be defined in the Service.logs section. If the log name is + # not a domain scoped name, it will be automatically prefixed with + # the service name followed by "/". + # Corresponds to the JSON property `logs` + # @return [Array] + attr_accessor :logs + + # The monitored resource type. The type must be defined in the + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @logs = args[:logs] if args.key?(:logs) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # Method represents a method of an API interface. + class MethodProp + include Google::Apis::Core::Hashable + + # The simple name of this method. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Any metadata attached to the method. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # If true, the request is streamed. + # Corresponds to the JSON property `requestStreaming` + # @return [Boolean] + attr_accessor :request_streaming + alias_method :request_streaming?, :request_streaming + + # A URL of the input message type. + # Corresponds to the JSON property `requestTypeUrl` + # @return [String] + attr_accessor :request_type_url + + # If true, the response is streamed. + # Corresponds to the JSON property `responseStreaming` + # @return [Boolean] + attr_accessor :response_streaming + alias_method :response_streaming?, :response_streaming + + # The URL of the output message type. + # Corresponds to the JSON property `responseTypeUrl` + # @return [String] + attr_accessor :response_type_url + + # The source syntax of this method. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @request_streaming = args[:request_streaming] if args.key?(:request_streaming) + @request_type_url = args[:request_type_url] if args.key?(:request_type_url) + @response_streaming = args[:response_streaming] if args.key?(:response_streaming) + @response_type_url = args[:response_type_url] if args.key?(:response_type_url) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Defines a metric type and its schema. Once a metric descriptor is created, + # deleting or altering it stops data collection and makes the metric type's + # existing data unusable. + class MetricDescriptor + include Google::Apis::Core::Hashable + + # A detailed description of the metric, which can be used in documentation. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # A concise name for the metric, which can be displayed in user interfaces. + # Use sentence case without an ending period, for example "Request count". + # This field is optional but it is recommended to be set for any metrics + # associated with user-visible concepts, such as Quota. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The set of labels that can be used to describe a specific + # instance of this metric type. For example, the + # `appengine.googleapis.com/http/server/response_latencies` metric + # type has a label for the HTTP response code, `response_code`, so + # you can look at latencies for successful responses or just + # for responses that failed. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # Additional annotations that can be used to guide the usage of a metric. + # Corresponds to the JSON property `metadata` + # @return [Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata] + attr_accessor :metadata + + # Whether the metric records instantaneous values, changes to a value, etc. + # Some combinations of `metric_kind` and `value_type` might not be supported. + # Corresponds to the JSON property `metricKind` + # @return [String] + attr_accessor :metric_kind + + # The resource name of the metric descriptor. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The metric type, including its DNS name prefix. The type is not + # URL-encoded. All user-defined metric types have the DNS name + # `custom.googleapis.com` or `external.googleapis.com`. Metric types should + # use a natural hierarchical grouping. For example: + # "custom.googleapis.com/invoice/paid/amount" + # "external.googleapis.com/prometheus/up" + # "appengine.googleapis.com/http/server/response_latencies" + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # The unit in which the metric value is reported. It is only applicable + # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The + # supported units are a subset of [The Unified Code for Units of + # Measure](http://unitsofmeasure.org/ucum.html) standard: + # **Basic units (UNIT)** + # * `bit` bit + # * `By` byte + # * `s` second + # * `min` minute + # * `h` hour + # * `d` day + # **Prefixes (PREFIX)** + # * `k` kilo (10**3) + # * `M` mega (10**6) + # * `G` giga (10**9) + # * `T` tera (10**12) + # * `P` peta (10**15) + # * `E` exa (10**18) + # * `Z` zetta (10**21) + # * `Y` yotta (10**24) + # * `m` milli (10**-3) + # * `u` micro (10**-6) + # * `n` nano (10**-9) + # * `p` pico (10**-12) + # * `f` femto (10**-15) + # * `a` atto (10**-18) + # * `z` zepto (10**-21) + # * `y` yocto (10**-24) + # * `Ki` kibi (2**10) + # * `Mi` mebi (2**20) + # * `Gi` gibi (2**30) + # * `Ti` tebi (2**40) + # **Grammar** + # The grammar also includes these connectors: + # * `/` division (as an infix operator, e.g. `1/s`). + # * `.` multiplication (as an infix operator, e.g. `GBy.d`) + # The grammar for a unit is as follows: + # Expression = Component ` "." Component ` ` "/" Component ` ; + # Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + # | Annotation + # | "1" + # ; + # Annotation = "`" NAME "`" ; + # Notes: + # * `Annotation` is just a comment if it follows a `UNIT` and is + # equivalent to `1` if it is used alone. For examples, + # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`. + # * `NAME` is a sequence of non-blank printable ASCII characters not + # containing '`' or '`'. + # * `1` represents dimensionless value 1, such as in `1/s`. + # * `%` represents dimensionless value 1/100, and annotates values giving + # a percentage. + # Corresponds to the JSON property `unit` + # @return [String] + attr_accessor :unit + + # Whether the measurement is an integer, a floating-point number, etc. + # Some combinations of `metric_kind` and `value_type` might not be supported. + # Corresponds to the JSON property `valueType` + # @return [String] + attr_accessor :value_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @metadata = args[:metadata] if args.key?(:metadata) + @metric_kind = args[:metric_kind] if args.key?(:metric_kind) + @name = args[:name] if args.key?(:name) + @type = args[:type] if args.key?(:type) + @unit = args[:unit] if args.key?(:unit) + @value_type = args[:value_type] if args.key?(:value_type) + end + end + + # Additional annotations that can be used to guide the usage of a metric. + class MetricDescriptorMetadata + include Google::Apis::Core::Hashable + + # The delay of data points caused by ingestion. Data points older than this + # age are guaranteed to be ingested and available to be read, excluding + # data loss due to errors. + # Corresponds to the JSON property `ingestDelay` + # @return [String] + attr_accessor :ingest_delay + + # The launch stage of the metric definition. + # Corresponds to the JSON property `launchStage` + # @return [String] + attr_accessor :launch_stage + + # The sampling period of metric data points. For metrics which are written + # periodically, consecutive data points are stored at this time interval, + # excluding data loss due to errors. Metrics with a higher granularity have + # a smaller sampling period. + # Corresponds to the JSON property `samplePeriod` + # @return [String] + attr_accessor :sample_period + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay) + @launch_stage = args[:launch_stage] if args.key?(:launch_stage) + @sample_period = args[:sample_period] if args.key?(:sample_period) + end + end + + # Bind API methods to metrics. Binding a method to a metric causes that + # metric's configured quota behaviors to apply to the method call. + class MetricRule + include Google::Apis::Core::Hashable + + # Metrics to update when the selected methods are called, and the associated + # cost applied to each metric. + # The key of the map is the metric name, and the values are the amount + # increased for the metric against which the quota limits are defined. + # The value must not be negative. + # Corresponds to the JSON property `metricCosts` + # @return [Hash] + attr_accessor :metric_costs + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metric_costs = args[:metric_costs] if args.key?(:metric_costs) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Declares an API Interface to be included in this interface. The including + # interface must redeclare all the methods from the included interface, but + # documentation and options are inherited as follows: + # - If after comment and whitespace stripping, the documentation + # string of the redeclared method is empty, it will be inherited + # from the original method. + # - Each annotation belonging to the service config (http, + # visibility) which is not set in the redeclared method will be + # inherited. + # - If an http annotation is inherited, the path pattern will be + # modified as follows. Any version prefix will be replaced by the + # version of the including interface plus the root path if + # specified. + # Example of a simple mixin: + # package google.acl.v1; + # service AccessControl ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v1/`resource=**`:getAcl"; + # ` + # ` + # package google.storage.v2; + # service Storage ` + # // rpc GetAcl(GetAclRequest) returns (Acl); + # // Get a data record. + # rpc GetData(GetDataRequest) returns (Data) ` + # option (google.api.http).get = "/v2/`resource=**`"; + # ` + # ` + # Example of a mixin configuration: + # apis: + # - name: google.storage.v2.Storage + # mixins: + # - name: google.acl.v1.AccessControl + # The mixin construct implies that all methods in `AccessControl` are + # also declared with same name and request/response types in + # `Storage`. A documentation generator or annotation processor will + # see the effective `Storage.GetAcl` method after inherting + # documentation and annotations as follows: + # service Storage ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v2/`resource=**`:getAcl"; + # ` + # ... + # ` + # Note how the version in the path pattern changed from `v1` to `v2`. + # If the `root` field in the mixin is specified, it should be a + # relative path under which inherited HTTP paths are placed. Example: + # apis: + # - name: google.storage.v2.Storage + # mixins: + # - name: google.acl.v1.AccessControl + # root: acls + # This implies the following inherited HTTP annotation: + # service Storage ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v2/acls/`resource=**`:getAcl"; + # ` + # ... + # ` + class Mixin + include Google::Apis::Core::Hashable + + # The fully qualified name of the interface which is included. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # If non-empty specifies a path under which inherited HTTP paths + # are rooted. + # Corresponds to the JSON property `root` + # @return [String] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @root = args[:root] if args.key?(:root) + end + end + + # An object that describes the schema of a MonitoredResource object using a + # type name and a set of labels. For example, the monitored resource + # descriptor for Google Compute Engine VM instances has a type of + # `"gce_instance"` and specifies the use of the labels `"instance_id"` and + # `"zone"` to identify particular VM instances. + # Different APIs can support different monitored resource types. APIs generally + # provide a `list` method that returns the monitored resource descriptors used + # by the API. + class MonitoredResourceDescriptor + include Google::Apis::Core::Hashable + + # Optional. A detailed description of the monitored resource type that might + # be used in documentation. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Optional. A concise name for the monitored resource type that might be + # displayed in user interfaces. It should be a Title Cased Noun Phrase, + # without any article or other determiners. For example, + # `"Google Cloud SQL Database"`. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Required. A set of labels used to describe instances of this monitored + # resource type. For example, an individual Google Cloud SQL database is + # identified by values for the labels `"database_id"` and `"zone"`. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # Optional. The resource name of the monitored resource descriptor: + # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where + # `type` is the value of the `type` field in this object and + # `project_id` is a project ID that provides API-specific context for + # accessing the type. APIs that do not use project information can use the + # resource name format `"monitoredResourceDescriptors/`type`"`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. The monitored resource type. For example, the type + # `"cloudsql_database"` represents databases in Google Cloud SQL. + # The maximum length of this value is 256 characters. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + @type = args[:type] if args.key?(:type) + end + end + + # Monitoring configuration of the service. + # The example below shows how to configure monitored resources and metrics + # for monitoring. In the example, a monitored resource and two metrics are + # defined. The `library.googleapis.com/book/returned_count` metric is sent + # to both producer and consumer projects, whereas the + # `library.googleapis.com/book/overdue_count` metric is only sent to the + # consumer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/returned_count + # metric_kind: DELTA + # value_type: INT64 + # labels: + # - key: /customer_id + # - name: library.googleapis.com/book/overdue_count + # metric_kind: GAUGE + # value_type: INT64 + # labels: + # - key: /customer_id + # monitoring: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # - library.googleapis.com/book/overdue_count + class Monitoring + include Google::Apis::Core::Hashable + + # Monitoring configurations for sending metrics to the consumer project. + # There can be multiple consumer destinations, each one must have a + # different monitored resource type. A metric can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + # Monitoring configurations for sending metrics to the producer project. + # There can be multiple producer destinations, each one must have a + # different monitored resource type. A metric can be used in at most + # one producer destination. + # Corresponds to the JSON property `producerDestinations` + # @return [Array] + attr_accessor :producer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) + end + end + + # Configuration of a specific monitoring destination (the producer project + # or the consumer project). + class MonitoringDestination + include Google::Apis::Core::Hashable + + # Names of the metrics to report to this monitoring destination. + # Each name must be defined in Service.metrics section. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # The monitored resource type. The type must be defined in + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # OAuth scopes are a way to define data and permissions on data. For example, + # there are scopes defined for "Read-only access to Google Calendar" and + # "Access to Cloud Platform". Users can consent to a scope for an application, + # giving it permission to access that data on their behalf. + # OAuth scope specifications should be fairly coarse grained; a user will need + # to see and understand the text description of what your scope means. + # In most cases: use one or at most two OAuth scopes for an entire family of + # products. If your product has multiple APIs, you should probably be sharing + # the OAuth scope across all of those APIs. + # When you need finer grained OAuth consent screens: talk with your product + # management about how developers will use them in practice. + # Please note that even though each of the canonical scopes is enough for a + # request to be accepted and passed to the backend, a request can still fail + # due to the backend requiring additional scopes or permissions. + class OAuthRequirements + include Google::Apis::Core::Hashable + + # The list of publicly documented OAuth scopes that are allowed access. An + # OAuth token containing any of these scopes will be accepted. + # Example: + # canonical_scopes: https://www.googleapis.com/auth/calendar, + # https://www.googleapis.com/auth/calendar.read + # Corresponds to the JSON property `canonicalScopes` + # @return [String] + attr_accessor :canonical_scopes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class Operation + include Google::Apis::Core::Hashable + + # If the value is `false`, it means the operation is still in progress. + # If `true`, the operation is completed, and either `error` or `response` is + # available. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::ServicenetworkingV1::Status] + attr_accessor :error + + # Service-specific metadata associated with the operation. It typically + # contains progress information and common metadata such as create time. + # Some services might not provide such metadata. Any method that returns a + # long-running operation should document the metadata type, if any. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # The server-assigned name, which is only unique within the same service that + # originally returns it. If you use the default HTTP mapping, the + # `name` should have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # A protocol buffer option, which can be attached to a message, field, + # enumeration, etc. + class Option + include Google::Apis::Core::Hashable + + # The option's name. For protobuf built-in options (options defined in + # descriptor.proto), this is the short name. For example, `"map_entry"`. + # For custom options, it should be the fully-qualified name. For example, + # `"google.api.http"`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The option's value packed in an Any message. If the value is a primitive, + # the corresponding wrapper type defined in google/protobuf/wrappers.proto + # should be used. If the value is an enum, it should be stored as an int32 + # value using the google.protobuf.Int32Value type. + # Corresponds to the JSON property `value` + # @return [Hash] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Represents a documentation page. A page can contain subpages to represent + # nested documentation set structure. + class Page + include Google::Apis::Core::Hashable + + # The Markdown content of the page. You can use (== include `path` ==&# + # 41; + # to include content from a Markdown file. + # Corresponds to the JSON property `content` + # @return [String] + attr_accessor :content + + # The name of the page. It will be used as an identity of the page to + # generate URI of the page, text of the link to this page in navigation, + # etc. The full page name (start from the root page name to this page + # concatenated with `.`) can be used as reference to the page in your + # documentation. For example: + #
pages:
+        # - name: Tutorial
+        # content: (== include tutorial.md ==)
+        # subpages:
+        # - name: Java
+        # content: (== include tutorial_java.md ==)
+        # 
+ # You can reference `Java` page using Markdown reference link syntax: + # `Java`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Subpages of this page. The order of subpages specified here will be + # honored in the generated docset. + # Corresponds to the JSON property `subpages` + # @return [Array] + attr_accessor :subpages + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content = args[:content] if args.key?(:content) + @name = args[:name] if args.key?(:name) + @subpages = args[:subpages] if args.key?(:subpages) + end + end + + # Quota configuration helps to achieve fairness and budgeting in service + # usage. + # The quota configuration works this way: + # - The service configuration defines a set of metrics. + # - For API calls, the quota.metric_rules maps methods to metrics with + # corresponding costs. + # - The quota.limits defines limits on the metrics, which will be used for + # quota checks at runtime. + # An example quota configuration in yaml format: + # quota: + # limits: + # - name: apiWriteQpsPerProject + # metric: library.googleapis.com/write_calls + # unit: "1/min/`project`" # rate limit for consumer projects + # values: + # STANDARD: 10000 + # # The metric rules bind all methods to the read_calls metric, + # # except for the UpdateBook and DeleteBook methods. These two methods + # # are mapped to the write_calls metric, with the UpdateBook method + # # consuming at twice rate as the DeleteBook method. + # metric_rules: + # - selector: "*" + # metric_costs: + # library.googleapis.com/read_calls: 1 + # - selector: google.example.library.v1.LibraryService.UpdateBook + # metric_costs: + # library.googleapis.com/write_calls: 2 + # - selector: google.example.library.v1.LibraryService.DeleteBook + # metric_costs: + # library.googleapis.com/write_calls: 1 + # Corresponding Metric definition: + # metrics: + # - name: library.googleapis.com/read_calls + # display_name: Read requests + # metric_kind: DELTA + # value_type: INT64 + # - name: library.googleapis.com/write_calls + # display_name: Write requests + # metric_kind: DELTA + # value_type: INT64 + class Quota + include Google::Apis::Core::Hashable + + # List of `QuotaLimit` definitions for the service. + # Corresponds to the JSON property `limits` + # @return [Array] + attr_accessor :limits + + # List of `MetricRule` definitions, each one mapping a selected method to one + # or more metrics. + # Corresponds to the JSON property `metricRules` + # @return [Array] + attr_accessor :metric_rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @limits = args[:limits] if args.key?(:limits) + @metric_rules = args[:metric_rules] if args.key?(:metric_rules) + end + end + + # `QuotaLimit` defines a specific limit that applies over a specified duration + # for a limit type. There can be at most one limit for a duration and limit + # type combination defined within a `QuotaGroup`. + class QuotaLimit + include Google::Apis::Core::Hashable + + # Default number of tokens that can be consumed during the specified + # duration. This is the number of tokens assigned when a client + # application developer activates the service for his/her project. + # Specifying a value of 0 will block all requests. This can be used if you + # are provisioning quota to selected consumers and blocking others. + # Similarly, a value of -1 will indicate an unlimited quota. No other + # negative values are allowed. + # Used by group-based quotas only. + # Corresponds to the JSON property `defaultLimit` + # @return [Fixnum] + attr_accessor :default_limit + + # Optional. User-visible, extended description for this quota limit. + # Should be used only when more context is needed to understand this limit + # than provided by the limit's display name (see: `display_name`). + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # User-visible display name for this limit. + # Optional. If not set, the UI will provide a default display name based on + # the quota configuration. This field can be used to override the default + # display name generated from the configuration. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Duration of this limit in textual notation. Example: "100s", "24h", "1d". + # For duration longer than a day, only multiple of days is supported. We + # support only "100s" and "1d" for now. Additional support will be added in + # the future. "0" indicates indefinite duration. + # Used by group-based quotas only. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # Free tier value displayed in the Developers Console for this limit. + # The free tier is the number of tokens that will be subtracted from the + # billed amount when billing is enabled. + # This field can only be set on a limit with duration "1d", in a billable + # group; it is invalid on any other limit. If this field is not set, it + # defaults to 0, indicating that there is no free tier for this service. + # Used by group-based quotas only. + # Corresponds to the JSON property `freeTier` + # @return [Fixnum] + attr_accessor :free_tier + + # Maximum number of tokens that can be consumed during the specified + # duration. Client application developers can override the default limit up + # to this maximum. If specified, this value cannot be set to a value less + # than the default limit. If not specified, it is set to the default limit. + # To allow clients to apply overrides with no upper bound, set this to -1, + # indicating unlimited maximum quota. + # Used by group-based quotas only. + # Corresponds to the JSON property `maxLimit` + # @return [Fixnum] + attr_accessor :max_limit + + # The name of the metric this quota limit applies to. The quota limits with + # the same metric will be checked together during runtime. The metric must be + # defined within the service config. + # Corresponds to the JSON property `metric` + # @return [String] + attr_accessor :metric + + # Name of the quota limit. + # The name must be provided, and it must be unique within the service. The + # name can only include alphanumeric characters as well as '-'. + # The maximum length of the limit name is 64 characters. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Specify the unit of the quota limit. It uses the same syntax as + # Metric.unit. The supported unit kinds are determined by the quota + # backend system. + # Here are some examples: + # * "1/min/`project`" for quota per minute per project. + # Note: the order of unit components is insignificant. + # The "1" at the beginning is required to follow the metric unit syntax. + # Corresponds to the JSON property `unit` + # @return [String] + attr_accessor :unit + + # Tiered limit values. You must specify this as a key:value pair, with an + # integer value that is the maximum number of requests allowed for the + # specified unit. Currently only STANDARD is supported. + # Corresponds to the JSON property `values` + # @return [Hash] + attr_accessor :values + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @default_limit = args[:default_limit] if args.key?(:default_limit) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @duration = args[:duration] if args.key?(:duration) + @free_tier = args[:free_tier] if args.key?(:free_tier) + @max_limit = args[:max_limit] if args.key?(:max_limit) + @metric = args[:metric] if args.key?(:metric) + @name = args[:name] if args.key?(:name) + @unit = args[:unit] if args.key?(:unit) + @values = args[:values] if args.key?(:values) + end + end + + # `Service` is the root object of Google service configuration schema. It + # describes basic information about a service, such as the name and the + # title, and delegates other aspects to sub-sections. Each sub-section is + # either a proto message or a repeated proto message that configures a + # specific aspect, such as auth. See each proto message definition for details. + # Example: + # type: google.api.Service + # config_version: 3 + # name: calendar.googleapis.com + # title: Google Calendar API + # apis: + # - name: google.calendar.v3.Calendar + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + class Service + include Google::Apis::Core::Hashable + + # A list of API interfaces exported by this service. Only the `name` field + # of the google.protobuf.Api needs to be provided by the configuration + # author, as the remaining fields will be derived from the IDL during the + # normalization process. It is an error to specify an API interface here + # which cannot be resolved against the associated IDL files. + # Corresponds to the JSON property `apis` + # @return [Array] + attr_accessor :apis + + # `Authentication` defines the authentication configuration for an API. + # Example for an API targeted for external use: + # name: calendar.googleapis.com + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + # Corresponds to the JSON property `authentication` + # @return [Google::Apis::ServicenetworkingV1::Authentication] + attr_accessor :authentication + + # `Backend` defines the backend configuration for a service. + # Corresponds to the JSON property `backend` + # @return [Google::Apis::ServicenetworkingV1::Backend] + attr_accessor :backend + + # Billing related configuration of the service. + # The following example shows how to configure monitored resources and metrics + # for billing: + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/borrowed_count + # metric_kind: DELTA + # value_type: INT64 + # billing: + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/borrowed_count + # Corresponds to the JSON property `billing` + # @return [Google::Apis::ServicenetworkingV1::Billing] + attr_accessor :billing + + # The semantic version of the service configuration. The config version + # affects the interpretation of the service configuration. For example, + # certain features are enabled by default for certain config versions. + # The latest config version is `3`. + # Corresponds to the JSON property `configVersion` + # @return [Fixnum] + attr_accessor :config_version + + # `Context` defines which contexts an API requests. + # Example: + # context: + # rules: + # - selector: "*" + # requested: + # - google.rpc.context.ProjectContext + # - google.rpc.context.OriginContext + # The above specifies that all methods in the API request + # `google.rpc.context.ProjectContext` and + # `google.rpc.context.OriginContext`. + # Available context types are defined in package + # `google.rpc.context`. + # This also provides mechanism to whitelist any protobuf message extension that + # can be sent in grpc metadata using “x-goog-ext--bin” and + # “x-goog-ext--jspb” format. For example, list any service + # specific protobuf types that can appear in grpc metadata as follows in your + # yaml file: + # Example: + # context: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allowed_request_extensions: + # - google.foo.v1.NewExtension + # allowed_response_extensions: + # - google.foo.v1.NewExtension + # You can also specify extension ID instead of fully qualified extension name + # here. + # Corresponds to the JSON property `context` + # @return [Google::Apis::ServicenetworkingV1::Context] + attr_accessor :context + + # Selects and configures the service controller used by the service. The + # service controller handles features like abuse, quota, billing, logging, + # monitoring, etc. + # Corresponds to the JSON property `control` + # @return [Google::Apis::ServicenetworkingV1::Control] + attr_accessor :control + + # Customize service error responses. For example, list any service + # specific protobuf types that can appear in error detail lists of + # error responses. + # Example: + # custom_error: + # types: + # - google.foo.v1.CustomError + # - google.foo.v1.AnotherError + # Corresponds to the JSON property `customError` + # @return [Google::Apis::ServicenetworkingV1::CustomError] + attr_accessor :custom_error + + # `Documentation` provides the information for describing a service. + # Example: + #
documentation:
+        # summary: >
+        # The Google Calendar API gives access
+        # to most calendar features.
+        # pages:
+        # - name: Overview
+        # content: (== include google/foo/overview.md ==)
+        # - name: Tutorial
+        # content: (== include google/foo/tutorial.md ==)
+        # subpages;
+        # - name: Java
+        # content: (== include google/foo/tutorial_java.md ==)
+        # rules:
+        # - selector: google.calendar.Calendar.Get
+        # description: >
+        # ...
+        # - selector: google.calendar.Calendar.Put
+        # description: >
+        # ...
+        # 
+ # Documentation is provided in markdown syntax. In addition to + # standard markdown features, definition lists, tables and fenced + # code blocks are supported. Section headers can be provided and are + # interpreted relative to the section nesting of the context where + # a documentation fragment is embedded. + # Documentation from the IDL is merged with documentation defined + # via the config at normalization time, where documentation provided + # by config rules overrides IDL provided. + # A number of constructs specific to the API platform are supported + # in documentation text. + # In order to reference a proto element, the following + # notation can be used: + #
[fully.qualified.proto.name][]
+ # To override the display text used for the link, this can be used: + #
[display text][fully.qualified.proto.name]
+ # Text can be excluded from doc using the following notation: + #
(-- internal comment --)
+ # A few directives are available in documentation. Note that + # directives must appear on a single line to be properly + # identified. The `include` directive includes a markdown file from + # an external source: + #
(== include path/to/file ==)
+ # The `resource_for` directive marks a message to be the resource of + # a collection in REST view. If it is not specified, tools attempt + # to infer the resource from the operations in a collection: + #
(== resource_for v1.shelves.books ==)
+ # The directive `suppress_warning` does not directly affect documentation + # and is documented together with service config validation. + # Corresponds to the JSON property `documentation` + # @return [Google::Apis::ServicenetworkingV1::Documentation] + attr_accessor :documentation + + # Configuration for network endpoints. If this is empty, then an endpoint + # with the same name as the service is automatically generated to service all + # defined APIs. + # Corresponds to the JSON property `endpoints` + # @return [Array] + attr_accessor :endpoints + + # A list of all enum types included in this API service. Enums + # referenced directly or indirectly by the `apis` are automatically + # included. Enums which are not referenced but shall be included + # should be listed here by name. Example: + # enums: + # - name: google.someapi.v1.SomeEnum + # Corresponds to the JSON property `enums` + # @return [Array] + attr_accessor :enums + + # Experimental service configuration. These configuration options can + # only be used by whitelisted users. + # Corresponds to the JSON property `experimental` + # @return [Google::Apis::ServicenetworkingV1::Experimental] + attr_accessor :experimental + + # Defines the HTTP configuration for an API service. It contains a list of + # HttpRule, each specifying the mapping of an RPC method + # to one or more HTTP REST API methods. + # Corresponds to the JSON property `http` + # @return [Google::Apis::ServicenetworkingV1::Http] + attr_accessor :http + + # A unique ID for a specific instance of this message, typically assigned + # by the client for tracking purpose. If empty, the server may choose to + # generate one instead. Must be no longer than 60 characters. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Logging configuration of the service. + # The following example shows how to configure logs to be sent to the + # producer and consumer projects. In the example, the `activity_history` + # log is sent to both the producer and consumer projects, whereas the + # `purchase_history` log is only sent to the producer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # logs: + # - name: activity_history + # labels: + # - key: /customer_id + # - name: purchase_history + # logging: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # - purchase_history + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # Corresponds to the JSON property `logging` + # @return [Google::Apis::ServicenetworkingV1::Logging] + attr_accessor :logging + + # Defines the logs used by this service. + # Corresponds to the JSON property `logs` + # @return [Array] + attr_accessor :logs + + # Defines the metrics used by this service. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # Defines the monitored resources used by this service. This is required + # by the Service.monitoring and Service.logging configurations. + # Corresponds to the JSON property `monitoredResources` + # @return [Array] + attr_accessor :monitored_resources + + # Monitoring configuration of the service. + # The example below shows how to configure monitored resources and metrics + # for monitoring. In the example, a monitored resource and two metrics are + # defined. The `library.googleapis.com/book/returned_count` metric is sent + # to both producer and consumer projects, whereas the + # `library.googleapis.com/book/overdue_count` metric is only sent to the + # consumer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/returned_count + # metric_kind: DELTA + # value_type: INT64 + # labels: + # - key: /customer_id + # - name: library.googleapis.com/book/overdue_count + # metric_kind: GAUGE + # value_type: INT64 + # labels: + # - key: /customer_id + # monitoring: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # - library.googleapis.com/book/overdue_count + # Corresponds to the JSON property `monitoring` + # @return [Google::Apis::ServicenetworkingV1::Monitoring] + attr_accessor :monitoring + + # The DNS address at which this service is available, + # e.g. `calendar.googleapis.com`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The Google project that owns this service. + # Corresponds to the JSON property `producerProjectId` + # @return [String] + attr_accessor :producer_project_id + + # Quota configuration helps to achieve fairness and budgeting in service + # usage. + # The quota configuration works this way: + # - The service configuration defines a set of metrics. + # - For API calls, the quota.metric_rules maps methods to metrics with + # corresponding costs. + # - The quota.limits defines limits on the metrics, which will be used for + # quota checks at runtime. + # An example quota configuration in yaml format: + # quota: + # limits: + # - name: apiWriteQpsPerProject + # metric: library.googleapis.com/write_calls + # unit: "1/min/`project`" # rate limit for consumer projects + # values: + # STANDARD: 10000 + # # The metric rules bind all methods to the read_calls metric, + # # except for the UpdateBook and DeleteBook methods. These two methods + # # are mapped to the write_calls metric, with the UpdateBook method + # # consuming at twice rate as the DeleteBook method. + # metric_rules: + # - selector: "*" + # metric_costs: + # library.googleapis.com/read_calls: 1 + # - selector: google.example.library.v1.LibraryService.UpdateBook + # metric_costs: + # library.googleapis.com/write_calls: 2 + # - selector: google.example.library.v1.LibraryService.DeleteBook + # metric_costs: + # library.googleapis.com/write_calls: 1 + # Corresponding Metric definition: + # metrics: + # - name: library.googleapis.com/read_calls + # display_name: Read requests + # metric_kind: DELTA + # value_type: INT64 + # - name: library.googleapis.com/write_calls + # display_name: Write requests + # metric_kind: DELTA + # value_type: INT64 + # Corresponds to the JSON property `quota` + # @return [Google::Apis::ServicenetworkingV1::Quota] + attr_accessor :quota + + # Source information used to create a Service Config + # Corresponds to the JSON property `sourceInfo` + # @return [Google::Apis::ServicenetworkingV1::SourceInfo] + attr_accessor :source_info + + # ### System parameter configuration + # A system parameter is a special kind of parameter defined by the API + # system, not by an individual API. It is typically mapped to an HTTP header + # and/or a URL query parameter. This configuration specifies which methods + # change the names of the system parameters. + # Corresponds to the JSON property `systemParameters` + # @return [Google::Apis::ServicenetworkingV1::SystemParameters] + attr_accessor :system_parameters + + # A list of all proto message types included in this API service. + # It serves similar purpose as [google.api.Service.types], except that + # these types are not needed by user-defined APIs. Therefore, they will not + # show up in the generated discovery doc. This field should only be used + # to define system APIs in ESF. + # Corresponds to the JSON property `systemTypes` + # @return [Array] + attr_accessor :system_types + + # The product title for this service. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + # A list of all proto message types included in this API service. + # Types referenced directly or indirectly by the `apis` are + # automatically included. Messages which are not referenced but + # shall be included, such as types used by the `google.protobuf.Any` type, + # should be listed here by name. Example: + # types: + # - name: google.protobuf.Int32 + # Corresponds to the JSON property `types` + # @return [Array] + attr_accessor :types + + # Configuration controlling usage of a service. + # Corresponds to the JSON property `usage` + # @return [Google::Apis::ServicenetworkingV1::Usage] + attr_accessor :usage + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @apis = args[:apis] if args.key?(:apis) + @authentication = args[:authentication] if args.key?(:authentication) + @backend = args[:backend] if args.key?(:backend) + @billing = args[:billing] if args.key?(:billing) + @config_version = args[:config_version] if args.key?(:config_version) + @context = args[:context] if args.key?(:context) + @control = args[:control] if args.key?(:control) + @custom_error = args[:custom_error] if args.key?(:custom_error) + @documentation = args[:documentation] if args.key?(:documentation) + @endpoints = args[:endpoints] if args.key?(:endpoints) + @enums = args[:enums] if args.key?(:enums) + @experimental = args[:experimental] if args.key?(:experimental) + @http = args[:http] if args.key?(:http) + @id = args[:id] if args.key?(:id) + @logging = args[:logging] if args.key?(:logging) + @logs = args[:logs] if args.key?(:logs) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources) + @monitoring = args[:monitoring] if args.key?(:monitoring) + @name = args[:name] if args.key?(:name) + @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id) + @quota = args[:quota] if args.key?(:quota) + @source_info = args[:source_info] if args.key?(:source_info) + @system_parameters = args[:system_parameters] if args.key?(:system_parameters) + @system_types = args[:system_types] if args.key?(:system_types) + @title = args[:title] if args.key?(:title) + @types = args[:types] if args.key?(:types) + @usage = args[:usage] if args.key?(:usage) + end + end + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + class SourceContext + include Google::Apis::Core::Hashable + + # The path-qualified name of the .proto file that contained the associated + # protobuf element. For example: `"google/protobuf/source_context.proto"`. + # Corresponds to the JSON property `fileName` + # @return [String] + attr_accessor :file_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @file_name = args[:file_name] if args.key?(:file_name) + end + end + + # Source information used to create a Service Config + class SourceInfo + include Google::Apis::Core::Hashable + + # All files used during config generation. + # Corresponds to the JSON property `sourceFiles` + # @return [Array>] + attr_accessor :source_files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @source_files = args[:source_files] if args.key?(:source_files) + end + end + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class Status + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # A developer-facing error message, which should be in English. Any + # user-facing error message should be localized and sent in the + # google.rpc.Status.details field, or localized by the client. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # Message returning the created service subnetwork. + class Subnetwork + include Google::Apis::Core::Hashable + + # Subnetwork CIDR range in "10.x.x.x/y" format. + # Corresponds to the JSON property `ipCidrRange` + # @return [String] + attr_accessor :ip_cidr_range + + # Subnetwork name. + # See https://cloud.google.com/compute/docs/vpc/ + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) + @name = args[:name] if args.key?(:name) + end + end + + # Define a parameter's name and location. The parameter may be passed as either + # an HTTP header or a URL query parameter, and if both are passed the behavior + # is implementation-dependent. + class SystemParameter + include Google::Apis::Core::Hashable + + # Define the HTTP header name to use for the parameter. It is case + # insensitive. + # Corresponds to the JSON property `httpHeader` + # @return [String] + attr_accessor :http_header + + # Define the name of the parameter, such as "api_key" . It is case sensitive. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Define the URL query parameter name to use for the parameter. It is case + # sensitive. + # Corresponds to the JSON property `urlQueryParameter` + # @return [String] + attr_accessor :url_query_parameter + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @http_header = args[:http_header] if args.key?(:http_header) + @name = args[:name] if args.key?(:name) + @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter) + end + end + + # Define a system parameter rule mapping system parameter definitions to + # methods. + class SystemParameterRule + include Google::Apis::Core::Hashable + + # Define parameters. Multiple names may be defined for a parameter. + # For a given method call, only one of them should be used. If multiple + # names are used the behavior is implementation-dependent. + # If none of the specified names are present the behavior is + # parameter-dependent. + # Corresponds to the JSON property `parameters` + # @return [Array] + attr_accessor :parameters + + # Selects the methods to which this rule applies. Use '*' to indicate all + # methods in all APIs. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parameters = args[:parameters] if args.key?(:parameters) + @selector = args[:selector] if args.key?(:selector) + end + end + + # ### System parameter configuration + # A system parameter is a special kind of parameter defined by the API + # system, not by an individual API. It is typically mapped to an HTTP header + # and/or a URL query parameter. This configuration specifies which methods + # change the names of the system parameters. + class SystemParameters + include Google::Apis::Core::Hashable + + # Define system parameters. + # The parameters defined here will override the default parameters + # implemented by the system. If this field is missing from the service + # config, default system parameters will be used. Default system parameters + # and names is implementation-dependent. + # Example: define api key for all methods + # system_parameters + # rules: + # - selector: "*" + # parameters: + # - name: api_key + # url_query_parameter: api_key + # Example: define 2 api key names for a specific method. + # system_parameters + # rules: + # - selector: "/ListShelves" + # parameters: + # - name: api_key + # http_header: Api-Key1 + # - name: api_key + # http_header: Api-Key2 + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A protocol buffer message type. + class Type + include Google::Apis::Core::Hashable + + # The list of fields. + # Corresponds to the JSON property `fields` + # @return [Array] + attr_accessor :fields + + # The fully qualified message name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The list of types appearing in `oneof` definitions in this type. + # Corresponds to the JSON property `oneofs` + # @return [Array] + attr_accessor :oneofs + + # The protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1::SourceContext] + attr_accessor :source_context + + # The source syntax. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fields = args[:fields] if args.key?(:fields) + @name = args[:name] if args.key?(:name) + @oneofs = args[:oneofs] if args.key?(:oneofs) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Configuration controlling usage of a service. + class Usage + include Google::Apis::Core::Hashable + + # The full resource name of a channel used for sending notifications to the + # service producer. + # Google Service Management currently only supports + # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + # channel. To use Google Cloud Pub/Sub as the channel, this must be the name + # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + # documented in https://cloud.google.com/pubsub/docs/overview. + # Corresponds to the JSON property `producerNotificationChannel` + # @return [String] + attr_accessor :producer_notification_channel + + # Requirements that must be satisfied before a consumer project can use the + # service. Each requirement is of the form /; + # for example 'serviceusage.googleapis.com/billing-enabled'. + # Corresponds to the JSON property `requirements` + # @return [Array] + attr_accessor :requirements + + # A list of usage rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel) + @requirements = args[:requirements] if args.key?(:requirements) + @rules = args[:rules] if args.key?(:rules) + end + end + + # Usage configuration rules for the service. + # NOTE: Under development. + # Use this rule to configure unregistered calls for the service. Unregistered + # calls are calls that do not contain consumer project identity. + # (Example: calls that do not contain an API key). + # By default, API methods do not allow unregistered calls, and each method call + # must be identified by a consumer project identity. Use this rule to + # allow/disallow unregistered calls. + # Example of an API that wants to allow unregistered calls for entire service. + # usage: + # rules: + # - selector: "*" + # allow_unregistered_calls: true + # Example of a method that wants to allow unregistered calls. + # usage: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allow_unregistered_calls: true + class UsageRule + include Google::Apis::Core::Hashable + + # If true, the selected method allows unregistered calls, e.g. calls + # that don't identify any user or application. + # Corresponds to the JSON property `allowUnregisteredCalls` + # @return [Boolean] + attr_accessor :allow_unregistered_calls + alias_method :allow_unregistered_calls?, :allow_unregistered_calls + + # Selects the methods to which this rule applies. Use '*' to indicate all + # methods in all APIs. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + # If true, the selected method should skip service control and the control + # plane features, such as quota and billing, will not be available. + # This flag is used by Google Cloud Endpoints to bypass checks for internal + # methods, such as service health check methods. + # Corresponds to the JSON property `skipServiceControl` + # @return [Boolean] + attr_accessor :skip_service_control + alias_method :skip_service_control?, :skip_service_control + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls) + @selector = args[:selector] if args.key?(:selector) + @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control) + end + end + end + end +end diff --git a/generated/google/apis/servicenetworking_v1/representations.rb b/generated/google/apis/servicenetworking_v1/representations.rb new file mode 100644 index 000000000..d128a1aae --- /dev/null +++ b/generated/google/apis/servicenetworking_v1/representations.rb @@ -0,0 +1,997 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1 + + class AddSubnetworkResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Api + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthProvider + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthRequirement + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Authentication + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthenticationRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthorizationConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Backend + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BackendRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Billing + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BillingDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CancelOperationRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Context + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ContextRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Control + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomError + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomErrorRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomHttpPattern + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Documentation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class DocumentationRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Empty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Endpoint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Enum + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class EnumValue + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Experimental + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Field + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Http + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class HttpRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LabelDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListOperationsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LogDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Logging + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LoggingDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MethodProp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricDescriptorMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Mixin + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MonitoredResourceDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Monitoring + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MonitoringDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class OAuthRequirements + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Operation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Option + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Page + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Quota + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class QuotaLimit + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Service + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SourceInfo + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Status + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Subnetwork + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameter + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameterRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameters + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Type + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Usage + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class UsageRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AddSubnetworkResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ip_cidr_range, as: 'ipCidrRange' + property :name, as: 'name' + end + end + + class Api + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :methods_prop, as: 'methods', class: Google::Apis::ServicenetworkingV1::MethodProp, decorator: Google::Apis::ServicenetworkingV1::MethodProp::Representation + + collection :mixins, as: 'mixins', class: Google::Apis::ServicenetworkingV1::Mixin, decorator: Google::Apis::ServicenetworkingV1::Mixin::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation + + property :syntax, as: 'syntax' + property :version, as: 'version' + end + end + + class AuthProvider + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :audiences, as: 'audiences' + property :authorization_url, as: 'authorizationUrl' + property :id, as: 'id' + property :issuer, as: 'issuer' + property :jwks_uri, as: 'jwksUri' + end + end + + class AuthRequirement + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :audiences, as: 'audiences' + property :provider_id, as: 'providerId' + end + end + + class Authentication + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :providers, as: 'providers', class: Google::Apis::ServicenetworkingV1::AuthProvider, decorator: Google::Apis::ServicenetworkingV1::AuthProvider::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::AuthenticationRule, decorator: Google::Apis::ServicenetworkingV1::AuthenticationRule::Representation + + end + end + + class AuthenticationRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :allow_without_credential, as: 'allowWithoutCredential' + property :oauth, as: 'oauth', class: Google::Apis::ServicenetworkingV1::OAuthRequirements, decorator: Google::Apis::ServicenetworkingV1::OAuthRequirements::Representation + + collection :requirements, as: 'requirements', class: Google::Apis::ServicenetworkingV1::AuthRequirement, decorator: Google::Apis::ServicenetworkingV1::AuthRequirement::Representation + + property :selector, as: 'selector' + end + end + + class AuthorizationConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :provider, as: 'provider' + end + end + + class Backend + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::BackendRule, decorator: Google::Apis::ServicenetworkingV1::BackendRule::Representation + + end + end + + class BackendRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :address, as: 'address' + property :deadline, as: 'deadline' + property :min_deadline, as: 'minDeadline' + property :selector, as: 'selector' + end + end + + class Billing + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::BillingDestination, decorator: Google::Apis::ServicenetworkingV1::BillingDestination::Representation + + end + end + + class BillingDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :metrics, as: 'metrics' + property :monitored_resource, as: 'monitoredResource' + end + end + + class CancelOperationRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class Context + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::ContextRule, decorator: Google::Apis::ServicenetworkingV1::ContextRule::Representation + + end + end + + class ContextRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :allowed_request_extensions, as: 'allowedRequestExtensions' + collection :allowed_response_extensions, as: 'allowedResponseExtensions' + collection :provided, as: 'provided' + collection :requested, as: 'requested' + property :selector, as: 'selector' + end + end + + class Control + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :environment, as: 'environment' + end + end + + class CustomError + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::CustomErrorRule, decorator: Google::Apis::ServicenetworkingV1::CustomErrorRule::Representation + + collection :types, as: 'types' + end + end + + class CustomErrorRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :is_error_type, as: 'isErrorType' + property :selector, as: 'selector' + end + end + + class CustomHttpPattern + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :kind, as: 'kind' + property :path, as: 'path' + end + end + + class Documentation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :documentation_root_url, as: 'documentationRootUrl' + property :overview, as: 'overview' + collection :pages, as: 'pages', class: Google::Apis::ServicenetworkingV1::Page, decorator: Google::Apis::ServicenetworkingV1::Page::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::DocumentationRule, decorator: Google::Apis::ServicenetworkingV1::DocumentationRule::Representation + + property :summary, as: 'summary' + end + end + + class DocumentationRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :deprecation_description, as: 'deprecationDescription' + property :description, as: 'description' + property :selector, as: 'selector' + end + end + + class Empty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class Endpoint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :aliases, as: 'aliases' + property :allow_cors, as: 'allowCors' + collection :features, as: 'features' + property :name, as: 'name' + property :target, as: 'target' + end + end + + class Enum + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :enumvalue, as: 'enumvalue', class: Google::Apis::ServicenetworkingV1::EnumValue, decorator: Google::Apis::ServicenetworkingV1::EnumValue::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation + + property :syntax, as: 'syntax' + end + end + + class EnumValue + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :number, as: 'number' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + end + end + + class Experimental + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :authorization, as: 'authorization', class: Google::Apis::ServicenetworkingV1::AuthorizationConfig, decorator: Google::Apis::ServicenetworkingV1::AuthorizationConfig::Representation + + end + end + + class Field + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cardinality, as: 'cardinality' + property :default_value, as: 'defaultValue' + property :json_name, as: 'jsonName' + property :kind, as: 'kind' + property :name, as: 'name' + property :number, as: 'number' + property :oneof_index, as: 'oneofIndex' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + property :packed, as: 'packed' + property :type_url, as: 'typeUrl' + end + end + + class Http + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :fully_decode_reserved_expansion, as: 'fullyDecodeReservedExpansion' + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::HttpRule, decorator: Google::Apis::ServicenetworkingV1::HttpRule::Representation + + end + end + + class HttpRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additional_bindings, as: 'additionalBindings', class: Google::Apis::ServicenetworkingV1::HttpRule, decorator: Google::Apis::ServicenetworkingV1::HttpRule::Representation + + property :body, as: 'body' + property :custom, as: 'custom', class: Google::Apis::ServicenetworkingV1::CustomHttpPattern, decorator: Google::Apis::ServicenetworkingV1::CustomHttpPattern::Representation + + property :delete, as: 'delete' + property :get, as: 'get' + property :patch, as: 'patch' + property :post, as: 'post' + property :put, as: 'put' + property :response_body, as: 'responseBody' + property :selector, as: 'selector' + end + end + + class LabelDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :key, as: 'key' + property :value_type, as: 'valueType' + end + end + + class ListOperationsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :operations, as: 'operations', class: Google::Apis::ServicenetworkingV1::Operation, decorator: Google::Apis::ServicenetworkingV1::Operation::Representation + + end + end + + class LogDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation + + property :name, as: 'name' + end + end + + class Logging + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1::LoggingDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1::LoggingDestination::Representation + + end + end + + class LoggingDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :logs, as: 'logs' + property :monitored_resource, as: 'monitoredResource' + end + end + + class MethodProp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + property :request_streaming, as: 'requestStreaming' + property :request_type_url, as: 'requestTypeUrl' + property :response_streaming, as: 'responseStreaming' + property :response_type_url, as: 'responseTypeUrl' + property :syntax, as: 'syntax' + end + end + + class MetricDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation + + property :metadata, as: 'metadata', class: Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata, decorator: Google::Apis::ServicenetworkingV1::MetricDescriptorMetadata::Representation + + property :metric_kind, as: 'metricKind' + property :name, as: 'name' + property :type, as: 'type' + property :unit, as: 'unit' + property :value_type, as: 'valueType' + end + end + + class MetricDescriptorMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ingest_delay, as: 'ingestDelay' + property :launch_stage, as: 'launchStage' + property :sample_period, as: 'samplePeriod' + end + end + + class MetricRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :metric_costs, as: 'metricCosts' + property :selector, as: 'selector' + end + end + + class Mixin + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :root, as: 'root' + end + end + + class MonitoredResourceDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1::LabelDescriptor::Representation + + property :name, as: 'name' + property :type, as: 'type' + end + end + + class Monitoring + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1::MonitoringDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1::MonitoringDestination::Representation + + end + end + + class MonitoringDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :metrics, as: 'metrics' + property :monitored_resource, as: 'monitoredResource' + end + end + + class OAuthRequirements + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :canonical_scopes, as: 'canonicalScopes' + end + end + + class Operation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::ServicenetworkingV1::Status, decorator: Google::Apis::ServicenetworkingV1::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class Option + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + hash :value, as: 'value' + end + end + + class Page + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content, as: 'content' + property :name, as: 'name' + collection :subpages, as: 'subpages', class: Google::Apis::ServicenetworkingV1::Page, decorator: Google::Apis::ServicenetworkingV1::Page::Representation + + end + end + + class Quota + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :limits, as: 'limits', class: Google::Apis::ServicenetworkingV1::QuotaLimit, decorator: Google::Apis::ServicenetworkingV1::QuotaLimit::Representation + + collection :metric_rules, as: 'metricRules', class: Google::Apis::ServicenetworkingV1::MetricRule, decorator: Google::Apis::ServicenetworkingV1::MetricRule::Representation + + end + end + + class QuotaLimit + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :default_limit, :numeric_string => true, as: 'defaultLimit' + property :description, as: 'description' + property :display_name, as: 'displayName' + property :duration, as: 'duration' + property :free_tier, :numeric_string => true, as: 'freeTier' + property :max_limit, :numeric_string => true, as: 'maxLimit' + property :metric, as: 'metric' + property :name, as: 'name' + property :unit, as: 'unit' + hash :values, as: 'values' + end + end + + class Service + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :apis, as: 'apis', class: Google::Apis::ServicenetworkingV1::Api, decorator: Google::Apis::ServicenetworkingV1::Api::Representation + + property :authentication, as: 'authentication', class: Google::Apis::ServicenetworkingV1::Authentication, decorator: Google::Apis::ServicenetworkingV1::Authentication::Representation + + property :backend, as: 'backend', class: Google::Apis::ServicenetworkingV1::Backend, decorator: Google::Apis::ServicenetworkingV1::Backend::Representation + + property :billing, as: 'billing', class: Google::Apis::ServicenetworkingV1::Billing, decorator: Google::Apis::ServicenetworkingV1::Billing::Representation + + property :config_version, as: 'configVersion' + property :context, as: 'context', class: Google::Apis::ServicenetworkingV1::Context, decorator: Google::Apis::ServicenetworkingV1::Context::Representation + + property :control, as: 'control', class: Google::Apis::ServicenetworkingV1::Control, decorator: Google::Apis::ServicenetworkingV1::Control::Representation + + property :custom_error, as: 'customError', class: Google::Apis::ServicenetworkingV1::CustomError, decorator: Google::Apis::ServicenetworkingV1::CustomError::Representation + + property :documentation, as: 'documentation', class: Google::Apis::ServicenetworkingV1::Documentation, decorator: Google::Apis::ServicenetworkingV1::Documentation::Representation + + collection :endpoints, as: 'endpoints', class: Google::Apis::ServicenetworkingV1::Endpoint, decorator: Google::Apis::ServicenetworkingV1::Endpoint::Representation + + collection :enums, as: 'enums', class: Google::Apis::ServicenetworkingV1::Enum, decorator: Google::Apis::ServicenetworkingV1::Enum::Representation + + property :experimental, as: 'experimental', class: Google::Apis::ServicenetworkingV1::Experimental, decorator: Google::Apis::ServicenetworkingV1::Experimental::Representation + + property :http, as: 'http', class: Google::Apis::ServicenetworkingV1::Http, decorator: Google::Apis::ServicenetworkingV1::Http::Representation + + property :id, as: 'id' + property :logging, as: 'logging', class: Google::Apis::ServicenetworkingV1::Logging, decorator: Google::Apis::ServicenetworkingV1::Logging::Representation + + collection :logs, as: 'logs', class: Google::Apis::ServicenetworkingV1::LogDescriptor, decorator: Google::Apis::ServicenetworkingV1::LogDescriptor::Representation + + collection :metrics, as: 'metrics', class: Google::Apis::ServicenetworkingV1::MetricDescriptor, decorator: Google::Apis::ServicenetworkingV1::MetricDescriptor::Representation + + collection :monitored_resources, as: 'monitoredResources', class: Google::Apis::ServicenetworkingV1::MonitoredResourceDescriptor, decorator: Google::Apis::ServicenetworkingV1::MonitoredResourceDescriptor::Representation + + property :monitoring, as: 'monitoring', class: Google::Apis::ServicenetworkingV1::Monitoring, decorator: Google::Apis::ServicenetworkingV1::Monitoring::Representation + + property :name, as: 'name' + property :producer_project_id, as: 'producerProjectId' + property :quota, as: 'quota', class: Google::Apis::ServicenetworkingV1::Quota, decorator: Google::Apis::ServicenetworkingV1::Quota::Representation + + property :source_info, as: 'sourceInfo', class: Google::Apis::ServicenetworkingV1::SourceInfo, decorator: Google::Apis::ServicenetworkingV1::SourceInfo::Representation + + property :system_parameters, as: 'systemParameters', class: Google::Apis::ServicenetworkingV1::SystemParameters, decorator: Google::Apis::ServicenetworkingV1::SystemParameters::Representation + + collection :system_types, as: 'systemTypes', class: Google::Apis::ServicenetworkingV1::Type, decorator: Google::Apis::ServicenetworkingV1::Type::Representation + + property :title, as: 'title' + collection :types, as: 'types', class: Google::Apis::ServicenetworkingV1::Type, decorator: Google::Apis::ServicenetworkingV1::Type::Representation + + property :usage, as: 'usage', class: Google::Apis::ServicenetworkingV1::Usage, decorator: Google::Apis::ServicenetworkingV1::Usage::Representation + + end + end + + class SourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :file_name, as: 'fileName' + end + end + + class SourceInfo + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :source_files, as: 'sourceFiles' + end + end + + class Status + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class Subnetwork + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ip_cidr_range, as: 'ipCidrRange' + property :name, as: 'name' + end + end + + class SystemParameter + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :http_header, as: 'httpHeader' + property :name, as: 'name' + property :url_query_parameter, as: 'urlQueryParameter' + end + end + + class SystemParameterRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :parameters, as: 'parameters', class: Google::Apis::ServicenetworkingV1::SystemParameter, decorator: Google::Apis::ServicenetworkingV1::SystemParameter::Representation + + property :selector, as: 'selector' + end + end + + class SystemParameters + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::SystemParameterRule, decorator: Google::Apis::ServicenetworkingV1::SystemParameterRule::Representation + + end + end + + class Type + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :fields, as: 'fields', class: Google::Apis::ServicenetworkingV1::Field, decorator: Google::Apis::ServicenetworkingV1::Field::Representation + + property :name, as: 'name' + collection :oneofs, as: 'oneofs' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1::Option, decorator: Google::Apis::ServicenetworkingV1::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1::SourceContext, decorator: Google::Apis::ServicenetworkingV1::SourceContext::Representation + + property :syntax, as: 'syntax' + end + end + + class Usage + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :producer_notification_channel, as: 'producerNotificationChannel' + collection :requirements, as: 'requirements' + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1::UsageRule, decorator: Google::Apis::ServicenetworkingV1::UsageRule::Representation + + end + end + + class UsageRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :allow_unregistered_calls, as: 'allowUnregisteredCalls' + property :selector, as: 'selector' + property :skip_service_control, as: 'skipServiceControl' + end + end + end + end +end diff --git a/generated/google/apis/servicenetworking_v1/service.rb b/generated/google/apis/servicenetworking_v1/service.rb new file mode 100644 index 000000000..9eff56785 --- /dev/null +++ b/generated/google/apis/servicenetworking_v1/service.rb @@ -0,0 +1,214 @@ +# Copyright 2015 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. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1 + # Service Networking API + # + # The Service Networking API provides automatic management of network + # configurations necessary for certain services. + # + # @example + # require 'google/apis/servicenetworking_v1' + # + # Servicenetworking = Google::Apis::ServicenetworkingV1 # Alias the module + # service = Servicenetworking::ServiceNetworkingService.new + # + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + class ServiceNetworkingService < Google::Apis::Core::BaseService + # @return [String] + # API key. Your API key identifies your project and provides you with API access, + # quota, and reports. Required unless you provide an OAuth 2.0 token. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + attr_accessor :quota_user + + def initialize + super('https://servicenetworking.googleapis.com/', '') + @batch_path = 'batch' + end + + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an Operation.error value with a google.rpc.Status.code of 1, + # corresponding to `Code.CANCELLED`. + # @param [String] name + # The name of the operation resource to be cancelled. + # @param [Google::Apis::ServicenetworkingV1::CancelOperationRequest] cancel_operation_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def cancel_operation(name, cancel_operation_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+name}:cancel', options) + command.request_representation = Google::Apis::ServicenetworkingV1::CancelOperationRequest::Representation + command.request_object = cancel_operation_request_object + command.response_representation = Google::Apis::ServicenetworkingV1::Empty::Representation + command.response_class = Google::Apis::ServicenetworkingV1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # @param [String] name + # The name of the operation resource to be deleted. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicenetworkingV1::Empty::Representation + command.response_class = Google::Apis::ServicenetworkingV1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicenetworkingV1::Operation::Representation + command.response_class = Google::Apis::ServicenetworkingV1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # NOTE: the `name` binding allows API services to override the binding + # to use different resource name schemes, such as `users/*/operations`. To + # override the binding, API services can add a binding such as + # `"/v1/`name=users/*`/operations"` to their service configuration. + # For backwards compatibility, the default name includes the operations + # collection id, however overriding users must ensure the name binding + # is the parent resource, without the operations collection id. + # @param [String] name + # The name of the operation's parent resource. + # @param [String] filter + # The standard list filter. + # @param [Fixnum] page_size + # The standard list page size. + # @param [String] page_token + # The standard list page token. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1::ListOperationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1::ListOperationsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_operations(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicenetworkingV1::ListOperationsResponse::Representation + command.response_class = Google::Apis::ServicenetworkingV1::ListOperationsResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/servicenetworking_v1beta.rb b/generated/google/apis/servicenetworking_v1beta.rb new file mode 100644 index 000000000..af57b6d16 --- /dev/null +++ b/generated/google/apis/servicenetworking_v1beta.rb @@ -0,0 +1,38 @@ +# Copyright 2015 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. + +require 'google/apis/servicenetworking_v1beta/service.rb' +require 'google/apis/servicenetworking_v1beta/classes.rb' +require 'google/apis/servicenetworking_v1beta/representations.rb' + +module Google + module Apis + # Service Networking API + # + # The Service Networking API provides automatic management of network + # configurations necessary for certain services. + # + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + module ServicenetworkingV1beta + VERSION = 'V1beta' + REVISION = '20181001' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + + # Manage your Google API service configuration + AUTH_SERVICE_MANAGEMENT = 'https://www.googleapis.com/auth/service.management' + end + end +end diff --git a/generated/google/apis/servicenetworking_v1beta/classes.rb b/generated/google/apis/servicenetworking_v1beta/classes.rb new file mode 100644 index 000000000..33b8dceed --- /dev/null +++ b/generated/google/apis/servicenetworking_v1beta/classes.rb @@ -0,0 +1,3466 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1beta + + # Request to create a subnetwork in a previously peered service network. + class AddSubnetworkRequest + include Google::Apis::Core::Hashable + + # Required. Resource representing service consumer. It may be different from + # the project number in consumer network parameter in case of that network + # being a shared VPC network. In that case, Service Networking will validate + # that this resource belongs to that shared VPC. + # For example 'projects/123456'. + # Corresponds to the JSON property `consumer` + # @return [String] + attr_accessor :consumer + + # Required. Network name in the consumer project. This network must have been + # already peered with a shared VPC network using CreateConnection + # method. + # Must be in a form 'projects/`project`/global/networks/`network`'. + # `project` is a project number, as in '12345' + # `network` is network name. + # Corresponds to the JSON property `consumerNetwork` + # @return [String] + attr_accessor :consumer_network + + # Optional. Description of the subnetwork. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Required. The prefix length of the IP range. + # Use usual CIDR range notation. + # For example, '30' to provision subnet with x.x.x.x/30 CIDR range. + # Actual range will be determined using allocated range for the consumer + # peered network and returned in the result. + # Corresponds to the JSON property `ipPrefixLength` + # @return [Fixnum] + attr_accessor :ip_prefix_length + + # Required. Cloud [region](/compute/docs/reference/rest/v1/regions) for the new + # subnetwork. + # Corresponds to the JSON property `region` + # @return [String] + attr_accessor :region + + # Required. Name for the new subnetwork. + # Must be a legal [subnetwork](compute/docs/reference/rest/v1/subnetworks) + # name. + # Corresponds to the JSON property `subnetwork` + # @return [String] + attr_accessor :subnetwork + + # Optional. List of members that will be granted 'compute.networkUser' role + # on the newly added subnetwork. + # Corresponds to the JSON property `subnetworkUsers` + # @return [Array] + attr_accessor :subnetwork_users + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer = args[:consumer] if args.key?(:consumer) + @consumer_network = args[:consumer_network] if args.key?(:consumer_network) + @description = args[:description] if args.key?(:description) + @ip_prefix_length = args[:ip_prefix_length] if args.key?(:ip_prefix_length) + @region = args[:region] if args.key?(:region) + @subnetwork = args[:subnetwork] if args.key?(:subnetwork) + @subnetwork_users = args[:subnetwork_users] if args.key?(:subnetwork_users) + end + end + + # Message returning the name of the created service subnetwork. + class AddSubnetworkResponse + include Google::Apis::Core::Hashable + + # Subnetwork CIDR range in "10.x.x.x/y" format. + # Corresponds to the JSON property `ipCidrRange` + # @return [String] + attr_accessor :ip_cidr_range + + # Subnetwork name. + # See https://cloud.google.com/compute/docs/vpc/ + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) + @name = args[:name] if args.key?(:name) + end + end + + # Api is a light-weight descriptor for an API Interface. + # Interfaces are also described as "protocol buffer services" in some contexts, + # such as by the "service" keyword in a .proto file, but they are different + # from API Services, which represent a concrete implementation of an interface + # as opposed to simply a description of methods and bindings. They are also + # sometimes simply referred to as "APIs" in other contexts, such as the name of + # this message itself. See https://cloud.google.com/apis/design/glossary for + # detailed terminology. + class Api + include Google::Apis::Core::Hashable + + # The methods of this interface, in unspecified order. + # Corresponds to the JSON property `methods` + # @return [Array] + attr_accessor :methods_prop + + # Included interfaces. See Mixin. + # Corresponds to the JSON property `mixins` + # @return [Array] + attr_accessor :mixins + + # The fully qualified name of this interface, including package name + # followed by the interface's simple name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Any metadata attached to the interface. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1beta::SourceContext] + attr_accessor :source_context + + # The source syntax of the service. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + # A version string for this interface. If specified, must have the form + # `major-version.minor-version`, as in `1.10`. If the minor version is + # omitted, it defaults to zero. If the entire version field is empty, the + # major version is derived from the package name, as outlined below. If the + # field is not empty, the version in the package name will be verified to be + # consistent with what is provided here. + # The versioning schema uses [semantic + # versioning](http://semver.org) where the major version number + # indicates a breaking change and the minor version an additive, + # non-breaking change. Both version numbers are signals to users + # what to expect from different versions, and should be carefully + # chosen based on the product plan. + # The major version is also reflected in the package name of the + # interface, which must end in `v`, as in + # `google.feature.v1`. For major versions 0 and 1, the suffix can + # be omitted. Zero major versions must only be used for + # experimental, non-GA interfaces. + # Corresponds to the JSON property `version` + # @return [String] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @methods_prop = args[:methods_prop] if args.key?(:methods_prop) + @mixins = args[:mixins] if args.key?(:mixins) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + @version = args[:version] if args.key?(:version) + end + end + + # Configuration for an anthentication provider, including support for + # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- + # token-32). + class AuthProvider + include Google::Apis::Core::Hashable + + # The list of JWT + # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# + # section-4.1.3). + # that are allowed to access. A JWT containing any of these audiences will + # be accepted. When this setting is absent, only JWTs with audience + # "https://Service_name/API_name" + # will be accepted. For example, if no audiences are in the setting, + # LibraryService API will only accept JWTs with the following audience + # "https://library-example.googleapis.com/google.example.library.v1. + # LibraryService". + # Example: + # audiences: bookstore_android.apps.googleusercontent.com, + # bookstore_web.apps.googleusercontent.com + # Corresponds to the JSON property `audiences` + # @return [String] + attr_accessor :audiences + + # Redirect URL if JWT token is required but no present or is expired. + # Implement authorizationUrl of securityDefinitions in OpenAPI spec. + # Corresponds to the JSON property `authorizationUrl` + # @return [String] + attr_accessor :authorization_url + + # The unique identifier of the auth provider. It will be referred to by + # `AuthRequirement.provider_id`. + # Example: "bookstore_auth". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Identifies the principal that issued the JWT. See + # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + # Usually a URL or an email address. + # Example: https://securetoken.google.com + # Example: 1234567-compute@developer.gserviceaccount.com + # Corresponds to the JSON property `issuer` + # @return [String] + attr_accessor :issuer + + # URL of the provider's public key set to validate signature of the JWT. See + # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html# + # ProviderMetadata). + # Optional if the key set document: + # - can be retrieved from + # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0. + # html + # of the issuer. + # - can be inferred from the email domain of the issuer (e.g. a Google service + # account). + # Example: https://www.googleapis.com/oauth2/v1/certs + # Corresponds to the JSON property `jwksUri` + # @return [String] + attr_accessor :jwks_uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audiences = args[:audiences] if args.key?(:audiences) + @authorization_url = args[:authorization_url] if args.key?(:authorization_url) + @id = args[:id] if args.key?(:id) + @issuer = args[:issuer] if args.key?(:issuer) + @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri) + end + end + + # User-defined authentication requirements, including support for + # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web- + # token-32). + class AuthRequirement + include Google::Apis::Core::Hashable + + # NOTE: This will be deprecated soon, once AuthProvider.audiences is + # implemented and accepted in all the runtime components. + # The list of JWT + # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# + # section-4.1.3). + # that are allowed to access. A JWT containing any of these audiences will + # be accepted. When this setting is absent, only JWTs with audience + # "https://Service_name/API_name" + # will be accepted. For example, if no audiences are in the setting, + # LibraryService API will only accept JWTs with the following audience + # "https://library-example.googleapis.com/google.example.library.v1. + # LibraryService". + # Example: + # audiences: bookstore_android.apps.googleusercontent.com, + # bookstore_web.apps.googleusercontent.com + # Corresponds to the JSON property `audiences` + # @return [String] + attr_accessor :audiences + + # id from authentication provider. + # Example: + # provider_id: bookstore_auth + # Corresponds to the JSON property `providerId` + # @return [String] + attr_accessor :provider_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audiences = args[:audiences] if args.key?(:audiences) + @provider_id = args[:provider_id] if args.key?(:provider_id) + end + end + + # `Authentication` defines the authentication configuration for an API. + # Example for an API targeted for external use: + # name: calendar.googleapis.com + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + class Authentication + include Google::Apis::Core::Hashable + + # Defines a set of authentication providers that a service supports. + # Corresponds to the JSON property `providers` + # @return [Array] + attr_accessor :providers + + # A list of authentication rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @providers = args[:providers] if args.key?(:providers) + @rules = args[:rules] if args.key?(:rules) + end + end + + # Authentication rules for the service. + # By default, if a method has any authentication requirements, every request + # must include a valid credential matching one of the requirements. + # It's an error to include more than one kind of credential in a single + # request. + # If a method doesn't have any auth requirements, request credentials will be + # ignored. + class AuthenticationRule + include Google::Apis::Core::Hashable + + # If true, the service accepts API keys without any other credential. + # Corresponds to the JSON property `allowWithoutCredential` + # @return [Boolean] + attr_accessor :allow_without_credential + alias_method :allow_without_credential?, :allow_without_credential + + # OAuth scopes are a way to define data and permissions on data. For example, + # there are scopes defined for "Read-only access to Google Calendar" and + # "Access to Cloud Platform". Users can consent to a scope for an application, + # giving it permission to access that data on their behalf. + # OAuth scope specifications should be fairly coarse grained; a user will need + # to see and understand the text description of what your scope means. + # In most cases: use one or at most two OAuth scopes for an entire family of + # products. If your product has multiple APIs, you should probably be sharing + # the OAuth scope across all of those APIs. + # When you need finer grained OAuth consent screens: talk with your product + # management about how developers will use them in practice. + # Please note that even though each of the canonical scopes is enough for a + # request to be accepted and passed to the backend, a request can still fail + # due to the backend requiring additional scopes or permissions. + # Corresponds to the JSON property `oauth` + # @return [Google::Apis::ServicenetworkingV1beta::OAuthRequirements] + attr_accessor :oauth + + # Requirements for additional authentication providers. + # Corresponds to the JSON property `requirements` + # @return [Array] + attr_accessor :requirements + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential) + @oauth = args[:oauth] if args.key?(:oauth) + @requirements = args[:requirements] if args.key?(:requirements) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Configuration of authorization. + # This section determines the authorization provider, if unspecified, then no + # authorization check will be done. + # Example: + # experimental: + # authorization: + # provider: firebaserules.googleapis.com + class AuthorizationConfig + include Google::Apis::Core::Hashable + + # The name of the authorization provider, such as + # firebaserules.googleapis.com. + # Corresponds to the JSON property `provider` + # @return [String] + attr_accessor :provider + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @provider = args[:provider] if args.key?(:provider) + end + end + + # `Backend` defines the backend configuration for a service. + class Backend + include Google::Apis::Core::Hashable + + # A list of API backend rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A backend rule provides configuration for an individual API element. + class BackendRule + include Google::Apis::Core::Hashable + + # The address of the API backend. + # Corresponds to the JSON property `address` + # @return [String] + attr_accessor :address + + # The number of seconds to wait for a response from a request. The default + # deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds. + # Corresponds to the JSON property `deadline` + # @return [Float] + attr_accessor :deadline + + # Minimum deadline in seconds needed for this method. Calls having deadline + # value lower than this will be rejected. + # Corresponds to the JSON property `minDeadline` + # @return [Float] + attr_accessor :min_deadline + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @address = args[:address] if args.key?(:address) + @deadline = args[:deadline] if args.key?(:deadline) + @min_deadline = args[:min_deadline] if args.key?(:min_deadline) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Billing related configuration of the service. + # The following example shows how to configure monitored resources and metrics + # for billing: + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/borrowed_count + # metric_kind: DELTA + # value_type: INT64 + # billing: + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/borrowed_count + class Billing + include Google::Apis::Core::Hashable + + # Billing configurations for sending metrics to the consumer project. + # There can be multiple consumer destinations per service, each one must have + # a different monitored resource type. A metric can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + end + end + + # Configuration of a specific billing destination (Currently only support + # bill against consumer project). + class BillingDestination + include Google::Apis::Core::Hashable + + # Names of the metrics to report to this billing destination. + # Each name must be defined in Service.metrics section. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # The monitored resource type. The type must be defined in + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # Message returning the created service connection. + class Connection + include Google::Apis::Core::Hashable + + # Name of VPC network connected with service producer network. + # Must be in a form 'projects/`project`/global/networks/`network`'. + # `project` is a project number, as in '12345' + # `network` is a network name. + # Corresponds to the JSON property `network` + # @return [String] + attr_accessor :network + + # Output only. + # Name of the peering connection that is created by the peering service. + # Corresponds to the JSON property `peering` + # @return [String] + attr_accessor :peering + + # Named IP address range(s) of PEERING type allocated for this service + # provider. + # Note that invoking this method with a different range when connection is + # already established will not modify already provisioned service + # producer subnetworks. + # Corresponds to the JSON property `reservedPeeringRanges` + # @return [Array] + attr_accessor :reserved_peering_ranges + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @network = args[:network] if args.key?(:network) + @peering = args[:peering] if args.key?(:peering) + @reserved_peering_ranges = args[:reserved_peering_ranges] if args.key?(:reserved_peering_ranges) + end + end + + # `Context` defines which contexts an API requests. + # Example: + # context: + # rules: + # - selector: "*" + # requested: + # - google.rpc.context.ProjectContext + # - google.rpc.context.OriginContext + # The above specifies that all methods in the API request + # `google.rpc.context.ProjectContext` and + # `google.rpc.context.OriginContext`. + # Available context types are defined in package + # `google.rpc.context`. + # This also provides mechanism to whitelist any protobuf message extension that + # can be sent in grpc metadata using “x-goog-ext--bin” and + # “x-goog-ext--jspb” format. For example, list any service + # specific protobuf types that can appear in grpc metadata as follows in your + # yaml file: + # Example: + # context: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allowed_request_extensions: + # - google.foo.v1.NewExtension + # allowed_response_extensions: + # - google.foo.v1.NewExtension + # You can also specify extension ID instead of fully qualified extension name + # here. + class Context + include Google::Apis::Core::Hashable + + # A list of RPC context rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A context rule provides information about the context for an individual API + # element. + class ContextRule + include Google::Apis::Core::Hashable + + # A list of full type names or extension IDs of extensions allowed in grpc + # side channel from client to backend. + # Corresponds to the JSON property `allowedRequestExtensions` + # @return [Array] + attr_accessor :allowed_request_extensions + + # A list of full type names or extension IDs of extensions allowed in grpc + # side channel from backend to client. + # Corresponds to the JSON property `allowedResponseExtensions` + # @return [Array] + attr_accessor :allowed_response_extensions + + # A list of full type names of provided contexts. + # Corresponds to the JSON property `provided` + # @return [Array] + attr_accessor :provided + + # A list of full type names of requested contexts. + # Corresponds to the JSON property `requested` + # @return [Array] + attr_accessor :requested + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions) + @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions) + @provided = args[:provided] if args.key?(:provided) + @requested = args[:requested] if args.key?(:requested) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Selects and configures the service controller used by the service. The + # service controller handles features like abuse, quota, billing, logging, + # monitoring, etc. + class Control + include Google::Apis::Core::Hashable + + # The service control environment to use. If empty, no control plane + # feature (like quota and billing) will be enabled. + # Corresponds to the JSON property `environment` + # @return [String] + attr_accessor :environment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @environment = args[:environment] if args.key?(:environment) + end + end + + # Customize service error responses. For example, list any service + # specific protobuf types that can appear in error detail lists of + # error responses. + # Example: + # custom_error: + # types: + # - google.foo.v1.CustomError + # - google.foo.v1.AnotherError + class CustomError + include Google::Apis::Core::Hashable + + # The list of custom error rules that apply to individual API messages. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. + # Corresponds to the JSON property `types` + # @return [Array] + attr_accessor :types + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + @types = args[:types] if args.key?(:types) + end + end + + # A custom error rule. + class CustomErrorRule + include Google::Apis::Core::Hashable + + # Mark this message as possible payload in error response. Otherwise, + # objects of this type will be filtered when they appear in error payload. + # Corresponds to the JSON property `isErrorType` + # @return [Boolean] + attr_accessor :is_error_type + alias_method :is_error_type?, :is_error_type + + # Selects messages to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @is_error_type = args[:is_error_type] if args.key?(:is_error_type) + @selector = args[:selector] if args.key?(:selector) + end + end + + # A custom pattern is used for defining custom HTTP verb. + class CustomHttpPattern + include Google::Apis::Core::Hashable + + # The name of this custom HTTP verb. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The path matched by this custom verb. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @kind = args[:kind] if args.key?(:kind) + @path = args[:path] if args.key?(:path) + end + end + + # `Documentation` provides the information for describing a service. + # Example: + #
documentation:
+      # summary: >
+      # The Google Calendar API gives access
+      # to most calendar features.
+      # pages:
+      # - name: Overview
+      # content: (== include google/foo/overview.md ==)
+      # - name: Tutorial
+      # content: (== include google/foo/tutorial.md ==)
+      # subpages;
+      # - name: Java
+      # content: (== include google/foo/tutorial_java.md ==)
+      # rules:
+      # - selector: google.calendar.Calendar.Get
+      # description: >
+      # ...
+      # - selector: google.calendar.Calendar.Put
+      # description: >
+      # ...
+      # 
+ # Documentation is provided in markdown syntax. In addition to + # standard markdown features, definition lists, tables and fenced + # code blocks are supported. Section headers can be provided and are + # interpreted relative to the section nesting of the context where + # a documentation fragment is embedded. + # Documentation from the IDL is merged with documentation defined + # via the config at normalization time, where documentation provided + # by config rules overrides IDL provided. + # A number of constructs specific to the API platform are supported + # in documentation text. + # In order to reference a proto element, the following + # notation can be used: + #
[fully.qualified.proto.name][]
+ # To override the display text used for the link, this can be used: + #
[display text][fully.qualified.proto.name]
+ # Text can be excluded from doc using the following notation: + #
(-- internal comment --)
+ # A few directives are available in documentation. Note that + # directives must appear on a single line to be properly + # identified. The `include` directive includes a markdown file from + # an external source: + #
(== include path/to/file ==)
+ # The `resource_for` directive marks a message to be the resource of + # a collection in REST view. If it is not specified, tools attempt + # to infer the resource from the operations in a collection: + #
(== resource_for v1.shelves.books ==)
+ # The directive `suppress_warning` does not directly affect documentation + # and is documented together with service config validation. + class Documentation + include Google::Apis::Core::Hashable + + # The URL to the root of documentation. + # Corresponds to the JSON property `documentationRootUrl` + # @return [String] + attr_accessor :documentation_root_url + + # Declares a single overview page. For example: + #
documentation:
+        # summary: ...
+        # overview: (== include overview.md ==)
+        # 
+ # This is a shortcut for the following declaration (using pages style): + #
documentation:
+        # summary: ...
+        # pages:
+        # - name: Overview
+        # content: (== include overview.md ==)
+        # 
+ # Note: you cannot specify both `overview` field and `pages` field. + # Corresponds to the JSON property `overview` + # @return [String] + attr_accessor :overview + + # The top level pages for the documentation set. + # Corresponds to the JSON property `pages` + # @return [Array] + attr_accessor :pages + + # A list of documentation rules that apply to individual API elements. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + # A short summary of what the service does. Can only be provided by + # plain text. + # Corresponds to the JSON property `summary` + # @return [String] + attr_accessor :summary + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url) + @overview = args[:overview] if args.key?(:overview) + @pages = args[:pages] if args.key?(:pages) + @rules = args[:rules] if args.key?(:rules) + @summary = args[:summary] if args.key?(:summary) + end + end + + # A documentation rule provides information about individual API elements. + class DocumentationRule + include Google::Apis::Core::Hashable + + # Deprecation description of the selected element(s). It can be provided if an + # element is marked as `deprecated`. + # Corresponds to the JSON property `deprecationDescription` + # @return [String] + attr_accessor :deprecation_description + + # Description of the selected API(s). + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The selector is a comma-separated list of patterns. Each pattern is a + # qualified name of the element which may end in "*", indicating a wildcard. + # Wildcards are only allowed at the end and for a whole component of the + # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To + # specify a default for all applicable elements, the whole pattern "*" + # is used. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description) + @description = args[:description] if args.key?(:description) + @selector = args[:selector] if args.key?(:selector) + end + end + + # `Endpoint` describes a network endpoint that serves a set of APIs. + # A service may expose any number of endpoints, and all endpoints share the + # same service configuration, such as quota configuration and monitoring + # configuration. + # Example service configuration: + # name: library-example.googleapis.com + # endpoints: + # # Below entry makes 'google.example.library.v1.Library' + # # API be served from endpoint address library-example.googleapis.com. + # # It also allows HTTP OPTIONS calls to be passed to the backend, for + # # it to decide whether the subsequent cross-origin request is + # # allowed to proceed. + # - name: library-example.googleapis.com + # allow_cors: true + class Endpoint + include Google::Apis::Core::Hashable + + # DEPRECATED: This field is no longer supported. Instead of using aliases, + # please specify multiple google.api.Endpoint for each of the intended + # aliases. + # Additional names that this endpoint will be hosted on. + # Corresponds to the JSON property `aliases` + # @return [Array] + attr_accessor :aliases + + # Allowing + # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + # cross-domain traffic, would allow the backends served from this endpoint to + # receive and respond to HTTP OPTIONS requests. The response will be used by + # the browser to determine whether the subsequent cross-origin request is + # allowed to proceed. + # Corresponds to the JSON property `allowCors` + # @return [Boolean] + attr_accessor :allow_cors + alias_method :allow_cors?, :allow_cors + + # The list of features enabled on this endpoint. + # Corresponds to the JSON property `features` + # @return [Array] + attr_accessor :features + + # The canonical name of this endpoint. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The specification of an Internet routable address of API frontend that will + # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/ + # glossary). + # It should be either a valid IPv4 address or a fully-qualified domain name. + # For example, "8.8.8.8" or "myservice.appspot.com". + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @aliases = args[:aliases] if args.key?(:aliases) + @allow_cors = args[:allow_cors] if args.key?(:allow_cors) + @features = args[:features] if args.key?(:features) + @name = args[:name] if args.key?(:name) + @target = args[:target] if args.key?(:target) + end + end + + # Enum type definition. + class Enum + include Google::Apis::Core::Hashable + + # Enum value definitions. + # Corresponds to the JSON property `enumvalue` + # @return [Array] + attr_accessor :enumvalue + + # Enum type name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1beta::SourceContext] + attr_accessor :source_context + + # The source syntax. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @enumvalue = args[:enumvalue] if args.key?(:enumvalue) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Enum value definition. + class EnumValue + include Google::Apis::Core::Hashable + + # Enum value name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Enum value number. + # Corresponds to the JSON property `number` + # @return [Fixnum] + attr_accessor :number + + # Protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @number = args[:number] if args.key?(:number) + @options = args[:options] if args.key?(:options) + end + end + + # Experimental service configuration. These configuration options can + # only be used by whitelisted users. + class Experimental + include Google::Apis::Core::Hashable + + # Configuration of authorization. + # This section determines the authorization provider, if unspecified, then no + # authorization check will be done. + # Example: + # experimental: + # authorization: + # provider: firebaserules.googleapis.com + # Corresponds to the JSON property `authorization` + # @return [Google::Apis::ServicenetworkingV1beta::AuthorizationConfig] + attr_accessor :authorization + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @authorization = args[:authorization] if args.key?(:authorization) + end + end + + # A single field of a message type. + class Field + include Google::Apis::Core::Hashable + + # The field cardinality. + # Corresponds to the JSON property `cardinality` + # @return [String] + attr_accessor :cardinality + + # The string value of the default value of this field. Proto2 syntax only. + # Corresponds to the JSON property `defaultValue` + # @return [String] + attr_accessor :default_value + + # The field JSON name. + # Corresponds to the JSON property `jsonName` + # @return [String] + attr_accessor :json_name + + # The field type. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The field name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The field number. + # Corresponds to the JSON property `number` + # @return [Fixnum] + attr_accessor :number + + # The index of the field type in `Type.oneofs`, for message or enumeration + # types. The first type has index 1; zero means the type is not in the list. + # Corresponds to the JSON property `oneofIndex` + # @return [Fixnum] + attr_accessor :oneof_index + + # The protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # Whether to use alternative packed wire representation. + # Corresponds to the JSON property `packed` + # @return [Boolean] + attr_accessor :packed + alias_method :packed?, :packed + + # The field type URL, without the scheme, for message or enumeration + # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + # Corresponds to the JSON property `typeUrl` + # @return [String] + attr_accessor :type_url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cardinality = args[:cardinality] if args.key?(:cardinality) + @default_value = args[:default_value] if args.key?(:default_value) + @json_name = args[:json_name] if args.key?(:json_name) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @number = args[:number] if args.key?(:number) + @oneof_index = args[:oneof_index] if args.key?(:oneof_index) + @options = args[:options] if args.key?(:options) + @packed = args[:packed] if args.key?(:packed) + @type_url = args[:type_url] if args.key?(:type_url) + end + end + + # Defines the HTTP configuration for an API service. It contains a list of + # HttpRule, each specifying the mapping of an RPC method + # to one or more HTTP REST API methods. + class Http + include Google::Apis::Core::Hashable + + # When set to true, URL path parmeters will be fully URI-decoded except in + # cases of single segment matches in reserved expansion, where "%2F" will be + # left encoded. + # The default behavior is to not decode RFC 6570 reserved characters in multi + # segment matches. + # Corresponds to the JSON property `fullyDecodeReservedExpansion` + # @return [Boolean] + attr_accessor :fully_decode_reserved_expansion + alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion + + # A list of HTTP configuration rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion) + @rules = args[:rules] if args.key?(:rules) + end + end + + # # gRPC Transcoding + # gRPC Transcoding is a feature for mapping between a gRPC method and one or + # more HTTP REST endpoints. It allows developers to build a single API service + # that supports both gRPC APIs and REST APIs. Many systems, including [Google + # APIs](https://github.com/googleapis/googleapis), + # [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC + # Gateway](https://github.com/grpc-ecosystem/grpc-gateway), + # and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature + # and use it for large scale production services. + # `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies + # how different portions of the gRPC request message are mapped to the URL + # path, URL query parameters, and HTTP request body. It also controls how the + # gRPC response message is mapped to the HTTP response body. `HttpRule` is + # typically specified as an `google.api.http` annotation on the gRPC method. + # Each mapping specifies a URL path template and an HTTP method. The path + # template may refer to one or more fields in the gRPC request message, as long + # as each field is a non-repeated field with a primitive (non-message) type. + # The path template controls how fields of the request message are mapped to + # the URL path. + # Example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get: "/v1/`name=messages/*"`" + # `; + # ` + # ` + # message GetMessageRequest ` + # string name = 1; // Mapped to URL path. + # ` + # message Message ` + # string text = 1; // The resource content. + # ` + # This enables an HTTP REST to gRPC mapping as below: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` + # Any fields in the request message which are not bound by the path template + # automatically become HTTP query parameters if there is no HTTP request body. + # For example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get:"/v1/messages/`message_id`" + # `; + # ` + # ` + # message GetMessageRequest ` + # message SubMessage ` + # string subfield = 1; + # ` + # string message_id = 1; // Mapped to URL path. + # int64 revision = 2; // Mapped to URL query parameter `revision`. + # SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. + # ` + # This enables a HTTP JSON to RPC mapping as below: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: + # "123456" revision: 2 sub: SubMessage(subfield: "foo"))` + # Note that fields which are mapped to URL query parameters must have a + # primitive type or a repeated primitive type or a non-repeated message type. + # In the case of a repeated type, the parameter can be repeated in the URL + # as `...?param=A¶m=B`. In the case of a message type, each field of the + # message is mapped to a separate parameter, such as + # `...?foo.a=A&foo.b=B&foo.c=C`. + # For HTTP methods that allow a request body, the `body` field + # specifies the mapping. Consider a REST update method on the + # message resource collection: + # service Messaging ` + # rpc UpdateMessage(UpdateMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # patch: "/v1/messages/`message_id`" + # body: "message" + # `; + # ` + # ` + # message UpdateMessageRequest ` + # string message_id = 1; // mapped to the URL + # Message message = 2; // mapped to the body + # ` + # The following HTTP JSON to RPC mapping is enabled, where the + # representation of the JSON in the request body is determined by + # protos JSON encoding: + # HTTP | gRPC + # -----|----- + # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " + # 123456" message ` text: "Hi!" `)` + # The special name `*` can be used in the body mapping to define that + # every field not bound by the path template should be mapped to the + # request body. This enables the following alternative definition of + # the update method: + # service Messaging ` + # rpc UpdateMessage(Message) returns (Message) ` + # option (google.api.http) = ` + # patch: "/v1/messages/`message_id`" + # body: "*" + # `; + # ` + # ` + # message Message ` + # string message_id = 1; + # string text = 2; + # ` + # The following HTTP JSON to RPC mapping is enabled: + # HTTP | gRPC + # -----|----- + # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: " + # 123456" text: "Hi!")` + # Note that when using `*` in the body mapping, it is not possible to + # have HTTP parameters, as all fields not bound by the path end in + # the body. This makes this option more rarely used in practice when + # defining REST APIs. The common usage of `*` is in custom methods + # which don't use the URL at all for transferring data. + # It is possible to define multiple HTTP methods for one RPC by using + # the `additional_bindings` option. Example: + # service Messaging ` + # rpc GetMessage(GetMessageRequest) returns (Message) ` + # option (google.api.http) = ` + # get: "/v1/messages/`message_id`" + # additional_bindings ` + # get: "/v1/users/`user_id`/messages/`message_id`" + # ` + # `; + # ` + # ` + # message GetMessageRequest ` + # string message_id = 1; + # string user_id = 2; + # ` + # This enables the following two alternative HTTP JSON to RPC mappings: + # HTTP | gRPC + # -----|----- + # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` + # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: " + # 123456")` + # ## Rules for HTTP mapping + # 1. Leaf request fields (recursive expansion nested messages in the request + # message) are classified into three categories: + # - Fields referred by the path template. They are passed via the URL path. + # - Fields referred by the HttpRule.body. They are passed via the HTTP + # request body. + # - All other fields are passed via the URL query parameters, and the + # parameter name is the field path in the request message. A repeated + # field can be represented as multiple query parameters under the same + # name. + # 2. If HttpRule.body is "*", there is no URL query parameter, all fields + # are passed via URL path and HTTP request body. + # 3. If HttpRule.body is omitted, there is no HTTP request body, all + # fields are passed via URL path and URL query parameters. + # ### Path template syntax + # Template = "/" Segments [ Verb ] ; + # Segments = Segment ` "/" Segment ` ; + # Segment = "*" | "**" | LITERAL | Variable ; + # Variable = "`" FieldPath [ "=" Segments ] "`" ; + # FieldPath = IDENT ` "." IDENT ` ; + # Verb = ":" LITERAL ; + # The syntax `*` matches a single URL path segment. The syntax `**` matches + # zero or more URL path segments, which must be the last part of the URL path + # except the `Verb`. + # The syntax `Variable` matches part of the URL path as specified by its + # template. A variable template must not contain other variables. If a variable + # matches a single path segment, its template may be omitted, e.g. ``var`` + # is equivalent to ``var=*``. + # The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` + # contains any reserved character, such characters should be percent-encoded + # before the matching. + # If a variable contains exactly one path segment, such as `"`var`"` or + # `"`var=*`"`, when such a variable is expanded into a URL path on the client + # side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The + # server side does the reverse decoding. Such variables show up in the + # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) + # as ``var``. + # If a variable contains multiple path segments, such as `"`var=foo/*`"` + # or `"`var=**`"`, when such a variable is expanded into a URL path on the + # client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. + # The server side does the reverse decoding, except "%2F" and "%2f" are left + # unchanged. Such variables show up in the + # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) + # as ``+var``. + # ## Using gRPC API Service Configuration + # gRPC API Service Configuration (service config) is a configuration language + # for configuring a gRPC service to become a user-facing product. The + # service config is simply the YAML representation of the `google.api.Service` + # proto message. + # As an alternative to annotating your proto file, you can configure gRPC + # transcoding in your service config YAML files. You do this by specifying a + # `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same + # effect as the proto annotation. This can be particularly useful if you + # have a proto that is reused in multiple services. Note that any transcoding + # specified in the service config will override any matching transcoding + # configuration in the proto. + # Example: + # http: + # rules: + # # Selects a gRPC method and applies HttpRule to it. + # - selector: example.v1.Messaging.GetMessage + # get: /v1/messages/`message_id`/`sub.subfield` + # ## Special notes + # When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the + # proto to JSON conversion must follow the [proto3 + # specification](https://developers.google.com/protocol-buffers/docs/proto3#json) + # . + # While the single segment variable follows the semantics of + # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String + # Expansion, the multi segment variable **does not** follow RFC 6570 Section + # 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion + # does not expand special characters like `?` and `#`, which would lead + # to invalid URLs. As the result, gRPC Transcoding uses a custom encoding + # for multi segment variables. + # The path variables **must not** refer to any repeated or mapped field, + # because client libraries are not capable of handling such variable expansion. + # The path variables **must not** capture the leading "/" character. The reason + # is that the most common use case "`var`" does not capture the leading "/" + # character. For consistency, all path variables must share the same behavior. + # Repeated message fields must not be mapped to URL query parameters, because + # no client library can support such complicated mapping. + # If an API needs to use a JSON array for request or response body, it can map + # the request or response body to a repeated field. However, some gRPC + # Transcoding implementations may not support this feature. + class HttpRule + include Google::Apis::Core::Hashable + + # Additional HTTP bindings for the selector. Nested bindings must + # not contain an `additional_bindings` field themselves (that is, + # the nesting may only be one level deep). + # Corresponds to the JSON property `additionalBindings` + # @return [Array] + attr_accessor :additional_bindings + + # The name of the request field whose value is mapped to the HTTP request + # body, or `*` for mapping all request fields not captured by the path + # pattern to the HTTP body, or omitted for not having any HTTP request body. + # NOTE: the referred field must be present at the top-level of the request + # message type. + # Corresponds to the JSON property `body` + # @return [String] + attr_accessor :body + + # A custom pattern is used for defining custom HTTP verb. + # Corresponds to the JSON property `custom` + # @return [Google::Apis::ServicenetworkingV1beta::CustomHttpPattern] + attr_accessor :custom + + # Maps to HTTP DELETE. Used for deleting a resource. + # Corresponds to the JSON property `delete` + # @return [String] + attr_accessor :delete + + # Maps to HTTP GET. Used for listing and getting information about + # resources. + # Corresponds to the JSON property `get` + # @return [String] + attr_accessor :get + + # Maps to HTTP PATCH. Used for updating a resource. + # Corresponds to the JSON property `patch` + # @return [String] + attr_accessor :patch + + # Maps to HTTP POST. Used for creating a resource or performing an action. + # Corresponds to the JSON property `post` + # @return [String] + attr_accessor :post + + # Maps to HTTP PUT. Used for replacing a resource. + # Corresponds to the JSON property `put` + # @return [String] + attr_accessor :put + + # Optional. The name of the response field whose value is mapped to the HTTP + # response body. When omitted, the entire response message will be used + # as the HTTP response body. + # NOTE: The referred field must be present at the top-level of the response + # message type. + # Corresponds to the JSON property `responseBody` + # @return [String] + attr_accessor :response_body + + # Selects a method to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings) + @body = args[:body] if args.key?(:body) + @custom = args[:custom] if args.key?(:custom) + @delete = args[:delete] if args.key?(:delete) + @get = args[:get] if args.key?(:get) + @patch = args[:patch] if args.key?(:patch) + @post = args[:post] if args.key?(:post) + @put = args[:put] if args.key?(:put) + @response_body = args[:response_body] if args.key?(:response_body) + @selector = args[:selector] if args.key?(:selector) + end + end + + # A description of a label. + class LabelDescriptor + include Google::Apis::Core::Hashable + + # A human-readable description for the label. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The label key. + # Corresponds to the JSON property `key` + # @return [String] + attr_accessor :key + + # The type of data that can be assigned to the label. + # Corresponds to the JSON property `valueType` + # @return [String] + attr_accessor :value_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @key = args[:key] if args.key?(:key) + @value_type = args[:value_type] if args.key?(:value_type) + end + end + + # ListConnectionsResponse is the response to list peering states for the + # given service and consumer project. + class ListConnectionsResponse + include Google::Apis::Core::Hashable + + # The list of Connections. + # Corresponds to the JSON property `connections` + # @return [Array] + attr_accessor :connections + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @connections = args[:connections] if args.key?(:connections) + end + end + + # A description of a log type. Example in YAML format: + # - name: library.googleapis.com/activity_history + # description: The history of borrowing and returning library items. + # display_name: Activity + # labels: + # - key: /customer_id + # description: Identifier of a library customer + class LogDescriptor + include Google::Apis::Core::Hashable + + # A human-readable description of this log. This information appears in + # the documentation and can contain details. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The human-readable name for this log. This information appears on + # the user interface and should be concise. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The set of labels that are available to describe a specific log entry. + # Runtime requests that contain labels not specified here are + # considered invalid. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # The name of the log. It must be less than 512 characters long and can + # include the following characters: upper- and lower-case alphanumeric + # characters [A-Za-z0-9], and punctuation characters including + # slash, underscore, hyphen, period [/_-.]. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + end + end + + # Logging configuration of the service. + # The following example shows how to configure logs to be sent to the + # producer and consumer projects. In the example, the `activity_history` + # log is sent to both the producer and consumer projects, whereas the + # `purchase_history` log is only sent to the producer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # logs: + # - name: activity_history + # labels: + # - key: /customer_id + # - name: purchase_history + # logging: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # - purchase_history + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + class Logging + include Google::Apis::Core::Hashable + + # Logging configurations for sending logs to the consumer project. + # There can be multiple consumer destinations, each one must have a + # different monitored resource type. A log can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + # Logging configurations for sending logs to the producer project. + # There can be multiple producer destinations, each one must have a + # different monitored resource type. A log can be used in at most + # one producer destination. + # Corresponds to the JSON property `producerDestinations` + # @return [Array] + attr_accessor :producer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) + end + end + + # Configuration of a specific logging destination (the producer project + # or the consumer project). + class LoggingDestination + include Google::Apis::Core::Hashable + + # Names of the logs to be sent to this destination. Each name must + # be defined in the Service.logs section. If the log name is + # not a domain scoped name, it will be automatically prefixed with + # the service name followed by "/". + # Corresponds to the JSON property `logs` + # @return [Array] + attr_accessor :logs + + # The monitored resource type. The type must be defined in the + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @logs = args[:logs] if args.key?(:logs) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # Method represents a method of an API interface. + class MethodProp + include Google::Apis::Core::Hashable + + # The simple name of this method. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Any metadata attached to the method. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # If true, the request is streamed. + # Corresponds to the JSON property `requestStreaming` + # @return [Boolean] + attr_accessor :request_streaming + alias_method :request_streaming?, :request_streaming + + # A URL of the input message type. + # Corresponds to the JSON property `requestTypeUrl` + # @return [String] + attr_accessor :request_type_url + + # If true, the response is streamed. + # Corresponds to the JSON property `responseStreaming` + # @return [Boolean] + attr_accessor :response_streaming + alias_method :response_streaming?, :response_streaming + + # The URL of the output message type. + # Corresponds to the JSON property `responseTypeUrl` + # @return [String] + attr_accessor :response_type_url + + # The source syntax of this method. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @options = args[:options] if args.key?(:options) + @request_streaming = args[:request_streaming] if args.key?(:request_streaming) + @request_type_url = args[:request_type_url] if args.key?(:request_type_url) + @response_streaming = args[:response_streaming] if args.key?(:response_streaming) + @response_type_url = args[:response_type_url] if args.key?(:response_type_url) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Defines a metric type and its schema. Once a metric descriptor is created, + # deleting or altering it stops data collection and makes the metric type's + # existing data unusable. + class MetricDescriptor + include Google::Apis::Core::Hashable + + # A detailed description of the metric, which can be used in documentation. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # A concise name for the metric, which can be displayed in user interfaces. + # Use sentence case without an ending period, for example "Request count". + # This field is optional but it is recommended to be set for any metrics + # associated with user-visible concepts, such as Quota. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The set of labels that can be used to describe a specific + # instance of this metric type. For example, the + # `appengine.googleapis.com/http/server/response_latencies` metric + # type has a label for the HTTP response code, `response_code`, so + # you can look at latencies for successful responses or just + # for responses that failed. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # Additional annotations that can be used to guide the usage of a metric. + # Corresponds to the JSON property `metadata` + # @return [Google::Apis::ServicenetworkingV1beta::MetricDescriptorMetadata] + attr_accessor :metadata + + # Whether the metric records instantaneous values, changes to a value, etc. + # Some combinations of `metric_kind` and `value_type` might not be supported. + # Corresponds to the JSON property `metricKind` + # @return [String] + attr_accessor :metric_kind + + # The resource name of the metric descriptor. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The metric type, including its DNS name prefix. The type is not + # URL-encoded. All user-defined metric types have the DNS name + # `custom.googleapis.com` or `external.googleapis.com`. Metric types should + # use a natural hierarchical grouping. For example: + # "custom.googleapis.com/invoice/paid/amount" + # "external.googleapis.com/prometheus/up" + # "appengine.googleapis.com/http/server/response_latencies" + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # The unit in which the metric value is reported. It is only applicable + # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The + # supported units are a subset of [The Unified Code for Units of + # Measure](http://unitsofmeasure.org/ucum.html) standard: + # **Basic units (UNIT)** + # * `bit` bit + # * `By` byte + # * `s` second + # * `min` minute + # * `h` hour + # * `d` day + # **Prefixes (PREFIX)** + # * `k` kilo (10**3) + # * `M` mega (10**6) + # * `G` giga (10**9) + # * `T` tera (10**12) + # * `P` peta (10**15) + # * `E` exa (10**18) + # * `Z` zetta (10**21) + # * `Y` yotta (10**24) + # * `m` milli (10**-3) + # * `u` micro (10**-6) + # * `n` nano (10**-9) + # * `p` pico (10**-12) + # * `f` femto (10**-15) + # * `a` atto (10**-18) + # * `z` zepto (10**-21) + # * `y` yocto (10**-24) + # * `Ki` kibi (2**10) + # * `Mi` mebi (2**20) + # * `Gi` gibi (2**30) + # * `Ti` tebi (2**40) + # **Grammar** + # The grammar also includes these connectors: + # * `/` division (as an infix operator, e.g. `1/s`). + # * `.` multiplication (as an infix operator, e.g. `GBy.d`) + # The grammar for a unit is as follows: + # Expression = Component ` "." Component ` ` "/" Component ` ; + # Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + # | Annotation + # | "1" + # ; + # Annotation = "`" NAME "`" ; + # Notes: + # * `Annotation` is just a comment if it follows a `UNIT` and is + # equivalent to `1` if it is used alone. For examples, + # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`. + # * `NAME` is a sequence of non-blank printable ASCII characters not + # containing '`' or '`'. + # * `1` represents dimensionless value 1, such as in `1/s`. + # * `%` represents dimensionless value 1/100, and annotates values giving + # a percentage. + # Corresponds to the JSON property `unit` + # @return [String] + attr_accessor :unit + + # Whether the measurement is an integer, a floating-point number, etc. + # Some combinations of `metric_kind` and `value_type` might not be supported. + # Corresponds to the JSON property `valueType` + # @return [String] + attr_accessor :value_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @metadata = args[:metadata] if args.key?(:metadata) + @metric_kind = args[:metric_kind] if args.key?(:metric_kind) + @name = args[:name] if args.key?(:name) + @type = args[:type] if args.key?(:type) + @unit = args[:unit] if args.key?(:unit) + @value_type = args[:value_type] if args.key?(:value_type) + end + end + + # Additional annotations that can be used to guide the usage of a metric. + class MetricDescriptorMetadata + include Google::Apis::Core::Hashable + + # The delay of data points caused by ingestion. Data points older than this + # age are guaranteed to be ingested and available to be read, excluding + # data loss due to errors. + # Corresponds to the JSON property `ingestDelay` + # @return [String] + attr_accessor :ingest_delay + + # The launch stage of the metric definition. + # Corresponds to the JSON property `launchStage` + # @return [String] + attr_accessor :launch_stage + + # The sampling period of metric data points. For metrics which are written + # periodically, consecutive data points are stored at this time interval, + # excluding data loss due to errors. Metrics with a higher granularity have + # a smaller sampling period. + # Corresponds to the JSON property `samplePeriod` + # @return [String] + attr_accessor :sample_period + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay) + @launch_stage = args[:launch_stage] if args.key?(:launch_stage) + @sample_period = args[:sample_period] if args.key?(:sample_period) + end + end + + # Bind API methods to metrics. Binding a method to a metric causes that + # metric's configured quota behaviors to apply to the method call. + class MetricRule + include Google::Apis::Core::Hashable + + # Metrics to update when the selected methods are called, and the associated + # cost applied to each metric. + # The key of the map is the metric name, and the values are the amount + # increased for the metric against which the quota limits are defined. + # The value must not be negative. + # Corresponds to the JSON property `metricCosts` + # @return [Hash] + attr_accessor :metric_costs + + # Selects the methods to which this rule applies. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metric_costs = args[:metric_costs] if args.key?(:metric_costs) + @selector = args[:selector] if args.key?(:selector) + end + end + + # Declares an API Interface to be included in this interface. The including + # interface must redeclare all the methods from the included interface, but + # documentation and options are inherited as follows: + # - If after comment and whitespace stripping, the documentation + # string of the redeclared method is empty, it will be inherited + # from the original method. + # - Each annotation belonging to the service config (http, + # visibility) which is not set in the redeclared method will be + # inherited. + # - If an http annotation is inherited, the path pattern will be + # modified as follows. Any version prefix will be replaced by the + # version of the including interface plus the root path if + # specified. + # Example of a simple mixin: + # package google.acl.v1; + # service AccessControl ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v1/`resource=**`:getAcl"; + # ` + # ` + # package google.storage.v2; + # service Storage ` + # // rpc GetAcl(GetAclRequest) returns (Acl); + # // Get a data record. + # rpc GetData(GetDataRequest) returns (Data) ` + # option (google.api.http).get = "/v2/`resource=**`"; + # ` + # ` + # Example of a mixin configuration: + # apis: + # - name: google.storage.v2.Storage + # mixins: + # - name: google.acl.v1.AccessControl + # The mixin construct implies that all methods in `AccessControl` are + # also declared with same name and request/response types in + # `Storage`. A documentation generator or annotation processor will + # see the effective `Storage.GetAcl` method after inherting + # documentation and annotations as follows: + # service Storage ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v2/`resource=**`:getAcl"; + # ` + # ... + # ` + # Note how the version in the path pattern changed from `v1` to `v2`. + # If the `root` field in the mixin is specified, it should be a + # relative path under which inherited HTTP paths are placed. Example: + # apis: + # - name: google.storage.v2.Storage + # mixins: + # - name: google.acl.v1.AccessControl + # root: acls + # This implies the following inherited HTTP annotation: + # service Storage ` + # // Get the underlying ACL object. + # rpc GetAcl(GetAclRequest) returns (Acl) ` + # option (google.api.http).get = "/v2/acls/`resource=**`:getAcl"; + # ` + # ... + # ` + class Mixin + include Google::Apis::Core::Hashable + + # The fully qualified name of the interface which is included. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # If non-empty specifies a path under which inherited HTTP paths + # are rooted. + # Corresponds to the JSON property `root` + # @return [String] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @root = args[:root] if args.key?(:root) + end + end + + # An object that describes the schema of a MonitoredResource object using a + # type name and a set of labels. For example, the monitored resource + # descriptor for Google Compute Engine VM instances has a type of + # `"gce_instance"` and specifies the use of the labels `"instance_id"` and + # `"zone"` to identify particular VM instances. + # Different APIs can support different monitored resource types. APIs generally + # provide a `list` method that returns the monitored resource descriptors used + # by the API. + class MonitoredResourceDescriptor + include Google::Apis::Core::Hashable + + # Optional. A detailed description of the monitored resource type that might + # be used in documentation. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Optional. A concise name for the monitored resource type that might be + # displayed in user interfaces. It should be a Title Cased Noun Phrase, + # without any article or other determiners. For example, + # `"Google Cloud SQL Database"`. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Required. A set of labels used to describe instances of this monitored + # resource type. For example, an individual Google Cloud SQL database is + # identified by values for the labels `"database_id"` and `"zone"`. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # Optional. The resource name of the monitored resource descriptor: + # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where + # `type` is the value of the `type` field in this object and + # `project_id` is a project ID that provides API-specific context for + # accessing the type. APIs that do not use project information can use the + # resource name format `"monitoredResourceDescriptors/`type`"`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. The monitored resource type. For example, the type + # `"cloudsql_database"` represents databases in Google Cloud SQL. + # The maximum length of this value is 256 characters. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + @type = args[:type] if args.key?(:type) + end + end + + # Monitoring configuration of the service. + # The example below shows how to configure monitored resources and metrics + # for monitoring. In the example, a monitored resource and two metrics are + # defined. The `library.googleapis.com/book/returned_count` metric is sent + # to both producer and consumer projects, whereas the + # `library.googleapis.com/book/overdue_count` metric is only sent to the + # consumer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/returned_count + # metric_kind: DELTA + # value_type: INT64 + # labels: + # - key: /customer_id + # - name: library.googleapis.com/book/overdue_count + # metric_kind: GAUGE + # value_type: INT64 + # labels: + # - key: /customer_id + # monitoring: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # - library.googleapis.com/book/overdue_count + class Monitoring + include Google::Apis::Core::Hashable + + # Monitoring configurations for sending metrics to the consumer project. + # There can be multiple consumer destinations, each one must have a + # different monitored resource type. A metric can be used in at most + # one consumer destination. + # Corresponds to the JSON property `consumerDestinations` + # @return [Array] + attr_accessor :consumer_destinations + + # Monitoring configurations for sending metrics to the producer project. + # There can be multiple producer destinations, each one must have a + # different monitored resource type. A metric can be used in at most + # one producer destination. + # Corresponds to the JSON property `producerDestinations` + # @return [Array] + attr_accessor :producer_destinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations) + @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations) + end + end + + # Configuration of a specific monitoring destination (the producer project + # or the consumer project). + class MonitoringDestination + include Google::Apis::Core::Hashable + + # Names of the metrics to report to this monitoring destination. + # Each name must be defined in Service.metrics section. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # The monitored resource type. The type must be defined in + # Service.monitored_resources section. + # Corresponds to the JSON property `monitoredResource` + # @return [String] + attr_accessor :monitored_resource + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource) + end + end + + # OAuth scopes are a way to define data and permissions on data. For example, + # there are scopes defined for "Read-only access to Google Calendar" and + # "Access to Cloud Platform". Users can consent to a scope for an application, + # giving it permission to access that data on their behalf. + # OAuth scope specifications should be fairly coarse grained; a user will need + # to see and understand the text description of what your scope means. + # In most cases: use one or at most two OAuth scopes for an entire family of + # products. If your product has multiple APIs, you should probably be sharing + # the OAuth scope across all of those APIs. + # When you need finer grained OAuth consent screens: talk with your product + # management about how developers will use them in practice. + # Please note that even though each of the canonical scopes is enough for a + # request to be accepted and passed to the backend, a request can still fail + # due to the backend requiring additional scopes or permissions. + class OAuthRequirements + include Google::Apis::Core::Hashable + + # The list of publicly documented OAuth scopes that are allowed access. An + # OAuth token containing any of these scopes will be accepted. + # Example: + # canonical_scopes: https://www.googleapis.com/auth/calendar, + # https://www.googleapis.com/auth/calendar.read + # Corresponds to the JSON property `canonicalScopes` + # @return [String] + attr_accessor :canonical_scopes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class Operation + include Google::Apis::Core::Hashable + + # If the value is `false`, it means the operation is still in progress. + # If `true`, the operation is completed, and either `error` or `response` is + # available. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::ServicenetworkingV1beta::Status] + attr_accessor :error + + # Service-specific metadata associated with the operation. It typically + # contains progress information and common metadata such as create time. + # Some services might not provide such metadata. Any method that returns a + # long-running operation should document the metadata type, if any. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # The server-assigned name, which is only unique within the same service that + # originally returns it. If you use the default HTTP mapping, the + # `name` should have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # A protocol buffer option, which can be attached to a message, field, + # enumeration, etc. + class Option + include Google::Apis::Core::Hashable + + # The option's name. For protobuf built-in options (options defined in + # descriptor.proto), this is the short name. For example, `"map_entry"`. + # For custom options, it should be the fully-qualified name. For example, + # `"google.api.http"`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The option's value packed in an Any message. If the value is a primitive, + # the corresponding wrapper type defined in google/protobuf/wrappers.proto + # should be used. If the value is an enum, it should be stored as an int32 + # value using the google.protobuf.Int32Value type. + # Corresponds to the JSON property `value` + # @return [Hash] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Represents a documentation page. A page can contain subpages to represent + # nested documentation set structure. + class Page + include Google::Apis::Core::Hashable + + # The Markdown content of the page. You can use (== include `path` ==&# + # 41; + # to include content from a Markdown file. + # Corresponds to the JSON property `content` + # @return [String] + attr_accessor :content + + # The name of the page. It will be used as an identity of the page to + # generate URI of the page, text of the link to this page in navigation, + # etc. The full page name (start from the root page name to this page + # concatenated with `.`) can be used as reference to the page in your + # documentation. For example: + #
pages:
+        # - name: Tutorial
+        # content: (== include tutorial.md ==)
+        # subpages:
+        # - name: Java
+        # content: (== include tutorial_java.md ==)
+        # 
+ # You can reference `Java` page using Markdown reference link syntax: + # `Java`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Subpages of this page. The order of subpages specified here will be + # honored in the generated docset. + # Corresponds to the JSON property `subpages` + # @return [Array] + attr_accessor :subpages + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content = args[:content] if args.key?(:content) + @name = args[:name] if args.key?(:name) + @subpages = args[:subpages] if args.key?(:subpages) + end + end + + # Quota configuration helps to achieve fairness and budgeting in service + # usage. + # The quota configuration works this way: + # - The service configuration defines a set of metrics. + # - For API calls, the quota.metric_rules maps methods to metrics with + # corresponding costs. + # - The quota.limits defines limits on the metrics, which will be used for + # quota checks at runtime. + # An example quota configuration in yaml format: + # quota: + # limits: + # - name: apiWriteQpsPerProject + # metric: library.googleapis.com/write_calls + # unit: "1/min/`project`" # rate limit for consumer projects + # values: + # STANDARD: 10000 + # # The metric rules bind all methods to the read_calls metric, + # # except for the UpdateBook and DeleteBook methods. These two methods + # # are mapped to the write_calls metric, with the UpdateBook method + # # consuming at twice rate as the DeleteBook method. + # metric_rules: + # - selector: "*" + # metric_costs: + # library.googleapis.com/read_calls: 1 + # - selector: google.example.library.v1.LibraryService.UpdateBook + # metric_costs: + # library.googleapis.com/write_calls: 2 + # - selector: google.example.library.v1.LibraryService.DeleteBook + # metric_costs: + # library.googleapis.com/write_calls: 1 + # Corresponding Metric definition: + # metrics: + # - name: library.googleapis.com/read_calls + # display_name: Read requests + # metric_kind: DELTA + # value_type: INT64 + # - name: library.googleapis.com/write_calls + # display_name: Write requests + # metric_kind: DELTA + # value_type: INT64 + class Quota + include Google::Apis::Core::Hashable + + # List of `QuotaLimit` definitions for the service. + # Corresponds to the JSON property `limits` + # @return [Array] + attr_accessor :limits + + # List of `MetricRule` definitions, each one mapping a selected method to one + # or more metrics. + # Corresponds to the JSON property `metricRules` + # @return [Array] + attr_accessor :metric_rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @limits = args[:limits] if args.key?(:limits) + @metric_rules = args[:metric_rules] if args.key?(:metric_rules) + end + end + + # `QuotaLimit` defines a specific limit that applies over a specified duration + # for a limit type. There can be at most one limit for a duration and limit + # type combination defined within a `QuotaGroup`. + class QuotaLimit + include Google::Apis::Core::Hashable + + # Default number of tokens that can be consumed during the specified + # duration. This is the number of tokens assigned when a client + # application developer activates the service for his/her project. + # Specifying a value of 0 will block all requests. This can be used if you + # are provisioning quota to selected consumers and blocking others. + # Similarly, a value of -1 will indicate an unlimited quota. No other + # negative values are allowed. + # Used by group-based quotas only. + # Corresponds to the JSON property `defaultLimit` + # @return [Fixnum] + attr_accessor :default_limit + + # Optional. User-visible, extended description for this quota limit. + # Should be used only when more context is needed to understand this limit + # than provided by the limit's display name (see: `display_name`). + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # User-visible display name for this limit. + # Optional. If not set, the UI will provide a default display name based on + # the quota configuration. This field can be used to override the default + # display name generated from the configuration. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Duration of this limit in textual notation. Example: "100s", "24h", "1d". + # For duration longer than a day, only multiple of days is supported. We + # support only "100s" and "1d" for now. Additional support will be added in + # the future. "0" indicates indefinite duration. + # Used by group-based quotas only. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # Free tier value displayed in the Developers Console for this limit. + # The free tier is the number of tokens that will be subtracted from the + # billed amount when billing is enabled. + # This field can only be set on a limit with duration "1d", in a billable + # group; it is invalid on any other limit. If this field is not set, it + # defaults to 0, indicating that there is no free tier for this service. + # Used by group-based quotas only. + # Corresponds to the JSON property `freeTier` + # @return [Fixnum] + attr_accessor :free_tier + + # Maximum number of tokens that can be consumed during the specified + # duration. Client application developers can override the default limit up + # to this maximum. If specified, this value cannot be set to a value less + # than the default limit. If not specified, it is set to the default limit. + # To allow clients to apply overrides with no upper bound, set this to -1, + # indicating unlimited maximum quota. + # Used by group-based quotas only. + # Corresponds to the JSON property `maxLimit` + # @return [Fixnum] + attr_accessor :max_limit + + # The name of the metric this quota limit applies to. The quota limits with + # the same metric will be checked together during runtime. The metric must be + # defined within the service config. + # Corresponds to the JSON property `metric` + # @return [String] + attr_accessor :metric + + # Name of the quota limit. + # The name must be provided, and it must be unique within the service. The + # name can only include alphanumeric characters as well as '-'. + # The maximum length of the limit name is 64 characters. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Specify the unit of the quota limit. It uses the same syntax as + # Metric.unit. The supported unit kinds are determined by the quota + # backend system. + # Here are some examples: + # * "1/min/`project`" for quota per minute per project. + # Note: the order of unit components is insignificant. + # The "1" at the beginning is required to follow the metric unit syntax. + # Corresponds to the JSON property `unit` + # @return [String] + attr_accessor :unit + + # Tiered limit values. You must specify this as a key:value pair, with an + # integer value that is the maximum number of requests allowed for the + # specified unit. Currently only STANDARD is supported. + # Corresponds to the JSON property `values` + # @return [Hash] + attr_accessor :values + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @default_limit = args[:default_limit] if args.key?(:default_limit) + @description = args[:description] if args.key?(:description) + @display_name = args[:display_name] if args.key?(:display_name) + @duration = args[:duration] if args.key?(:duration) + @free_tier = args[:free_tier] if args.key?(:free_tier) + @max_limit = args[:max_limit] if args.key?(:max_limit) + @metric = args[:metric] if args.key?(:metric) + @name = args[:name] if args.key?(:name) + @unit = args[:unit] if args.key?(:unit) + @values = args[:values] if args.key?(:values) + end + end + + # `Service` is the root object of Google service configuration schema. It + # describes basic information about a service, such as the name and the + # title, and delegates other aspects to sub-sections. Each sub-section is + # either a proto message or a repeated proto message that configures a + # specific aspect, such as auth. See each proto message definition for details. + # Example: + # type: google.api.Service + # config_version: 3 + # name: calendar.googleapis.com + # title: Google Calendar API + # apis: + # - name: google.calendar.v3.Calendar + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + class Service + include Google::Apis::Core::Hashable + + # A list of API interfaces exported by this service. Only the `name` field + # of the google.protobuf.Api needs to be provided by the configuration + # author, as the remaining fields will be derived from the IDL during the + # normalization process. It is an error to specify an API interface here + # which cannot be resolved against the associated IDL files. + # Corresponds to the JSON property `apis` + # @return [Array] + attr_accessor :apis + + # `Authentication` defines the authentication configuration for an API. + # Example for an API targeted for external use: + # name: calendar.googleapis.com + # authentication: + # providers: + # - id: google_calendar_auth + # jwks_uri: https://www.googleapis.com/oauth2/v1/certs + # issuer: https://securetoken.google.com + # rules: + # - selector: "*" + # requirements: + # provider_id: google_calendar_auth + # Corresponds to the JSON property `authentication` + # @return [Google::Apis::ServicenetworkingV1beta::Authentication] + attr_accessor :authentication + + # `Backend` defines the backend configuration for a service. + # Corresponds to the JSON property `backend` + # @return [Google::Apis::ServicenetworkingV1beta::Backend] + attr_accessor :backend + + # Billing related configuration of the service. + # The following example shows how to configure monitored resources and metrics + # for billing: + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/borrowed_count + # metric_kind: DELTA + # value_type: INT64 + # billing: + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/borrowed_count + # Corresponds to the JSON property `billing` + # @return [Google::Apis::ServicenetworkingV1beta::Billing] + attr_accessor :billing + + # The semantic version of the service configuration. The config version + # affects the interpretation of the service configuration. For example, + # certain features are enabled by default for certain config versions. + # The latest config version is `3`. + # Corresponds to the JSON property `configVersion` + # @return [Fixnum] + attr_accessor :config_version + + # `Context` defines which contexts an API requests. + # Example: + # context: + # rules: + # - selector: "*" + # requested: + # - google.rpc.context.ProjectContext + # - google.rpc.context.OriginContext + # The above specifies that all methods in the API request + # `google.rpc.context.ProjectContext` and + # `google.rpc.context.OriginContext`. + # Available context types are defined in package + # `google.rpc.context`. + # This also provides mechanism to whitelist any protobuf message extension that + # can be sent in grpc metadata using “x-goog-ext--bin” and + # “x-goog-ext--jspb” format. For example, list any service + # specific protobuf types that can appear in grpc metadata as follows in your + # yaml file: + # Example: + # context: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allowed_request_extensions: + # - google.foo.v1.NewExtension + # allowed_response_extensions: + # - google.foo.v1.NewExtension + # You can also specify extension ID instead of fully qualified extension name + # here. + # Corresponds to the JSON property `context` + # @return [Google::Apis::ServicenetworkingV1beta::Context] + attr_accessor :context + + # Selects and configures the service controller used by the service. The + # service controller handles features like abuse, quota, billing, logging, + # monitoring, etc. + # Corresponds to the JSON property `control` + # @return [Google::Apis::ServicenetworkingV1beta::Control] + attr_accessor :control + + # Customize service error responses. For example, list any service + # specific protobuf types that can appear in error detail lists of + # error responses. + # Example: + # custom_error: + # types: + # - google.foo.v1.CustomError + # - google.foo.v1.AnotherError + # Corresponds to the JSON property `customError` + # @return [Google::Apis::ServicenetworkingV1beta::CustomError] + attr_accessor :custom_error + + # `Documentation` provides the information for describing a service. + # Example: + #
documentation:
+        # summary: >
+        # The Google Calendar API gives access
+        # to most calendar features.
+        # pages:
+        # - name: Overview
+        # content: (== include google/foo/overview.md ==)
+        # - name: Tutorial
+        # content: (== include google/foo/tutorial.md ==)
+        # subpages;
+        # - name: Java
+        # content: (== include google/foo/tutorial_java.md ==)
+        # rules:
+        # - selector: google.calendar.Calendar.Get
+        # description: >
+        # ...
+        # - selector: google.calendar.Calendar.Put
+        # description: >
+        # ...
+        # 
+ # Documentation is provided in markdown syntax. In addition to + # standard markdown features, definition lists, tables and fenced + # code blocks are supported. Section headers can be provided and are + # interpreted relative to the section nesting of the context where + # a documentation fragment is embedded. + # Documentation from the IDL is merged with documentation defined + # via the config at normalization time, where documentation provided + # by config rules overrides IDL provided. + # A number of constructs specific to the API platform are supported + # in documentation text. + # In order to reference a proto element, the following + # notation can be used: + #
[fully.qualified.proto.name][]
+ # To override the display text used for the link, this can be used: + #
[display text][fully.qualified.proto.name]
+ # Text can be excluded from doc using the following notation: + #
(-- internal comment --)
+ # A few directives are available in documentation. Note that + # directives must appear on a single line to be properly + # identified. The `include` directive includes a markdown file from + # an external source: + #
(== include path/to/file ==)
+ # The `resource_for` directive marks a message to be the resource of + # a collection in REST view. If it is not specified, tools attempt + # to infer the resource from the operations in a collection: + #
(== resource_for v1.shelves.books ==)
+ # The directive `suppress_warning` does not directly affect documentation + # and is documented together with service config validation. + # Corresponds to the JSON property `documentation` + # @return [Google::Apis::ServicenetworkingV1beta::Documentation] + attr_accessor :documentation + + # Configuration for network endpoints. If this is empty, then an endpoint + # with the same name as the service is automatically generated to service all + # defined APIs. + # Corresponds to the JSON property `endpoints` + # @return [Array] + attr_accessor :endpoints + + # A list of all enum types included in this API service. Enums + # referenced directly or indirectly by the `apis` are automatically + # included. Enums which are not referenced but shall be included + # should be listed here by name. Example: + # enums: + # - name: google.someapi.v1.SomeEnum + # Corresponds to the JSON property `enums` + # @return [Array] + attr_accessor :enums + + # Experimental service configuration. These configuration options can + # only be used by whitelisted users. + # Corresponds to the JSON property `experimental` + # @return [Google::Apis::ServicenetworkingV1beta::Experimental] + attr_accessor :experimental + + # Defines the HTTP configuration for an API service. It contains a list of + # HttpRule, each specifying the mapping of an RPC method + # to one or more HTTP REST API methods. + # Corresponds to the JSON property `http` + # @return [Google::Apis::ServicenetworkingV1beta::Http] + attr_accessor :http + + # A unique ID for a specific instance of this message, typically assigned + # by the client for tracking purpose. If empty, the server may choose to + # generate one instead. Must be no longer than 60 characters. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Logging configuration of the service. + # The following example shows how to configure logs to be sent to the + # producer and consumer projects. In the example, the `activity_history` + # log is sent to both the producer and consumer projects, whereas the + # `purchase_history` log is only sent to the producer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # logs: + # - name: activity_history + # labels: + # - key: /customer_id + # - name: purchase_history + # logging: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # - purchase_history + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # logs: + # - activity_history + # Corresponds to the JSON property `logging` + # @return [Google::Apis::ServicenetworkingV1beta::Logging] + attr_accessor :logging + + # Defines the logs used by this service. + # Corresponds to the JSON property `logs` + # @return [Array] + attr_accessor :logs + + # Defines the metrics used by this service. + # Corresponds to the JSON property `metrics` + # @return [Array] + attr_accessor :metrics + + # Defines the monitored resources used by this service. This is required + # by the Service.monitoring and Service.logging configurations. + # Corresponds to the JSON property `monitoredResources` + # @return [Array] + attr_accessor :monitored_resources + + # Monitoring configuration of the service. + # The example below shows how to configure monitored resources and metrics + # for monitoring. In the example, a monitored resource and two metrics are + # defined. The `library.googleapis.com/book/returned_count` metric is sent + # to both producer and consumer projects, whereas the + # `library.googleapis.com/book/overdue_count` metric is only sent to the + # consumer project. + # monitored_resources: + # - type: library.googleapis.com/branch + # labels: + # - key: /city + # description: The city where the library branch is located in. + # - key: /name + # description: The name of the branch. + # metrics: + # - name: library.googleapis.com/book/returned_count + # metric_kind: DELTA + # value_type: INT64 + # labels: + # - key: /customer_id + # - name: library.googleapis.com/book/overdue_count + # metric_kind: GAUGE + # value_type: INT64 + # labels: + # - key: /customer_id + # monitoring: + # producer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # consumer_destinations: + # - monitored_resource: library.googleapis.com/branch + # metrics: + # - library.googleapis.com/book/returned_count + # - library.googleapis.com/book/overdue_count + # Corresponds to the JSON property `monitoring` + # @return [Google::Apis::ServicenetworkingV1beta::Monitoring] + attr_accessor :monitoring + + # The DNS address at which this service is available, + # e.g. `calendar.googleapis.com`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The Google project that owns this service. + # Corresponds to the JSON property `producerProjectId` + # @return [String] + attr_accessor :producer_project_id + + # Quota configuration helps to achieve fairness and budgeting in service + # usage. + # The quota configuration works this way: + # - The service configuration defines a set of metrics. + # - For API calls, the quota.metric_rules maps methods to metrics with + # corresponding costs. + # - The quota.limits defines limits on the metrics, which will be used for + # quota checks at runtime. + # An example quota configuration in yaml format: + # quota: + # limits: + # - name: apiWriteQpsPerProject + # metric: library.googleapis.com/write_calls + # unit: "1/min/`project`" # rate limit for consumer projects + # values: + # STANDARD: 10000 + # # The metric rules bind all methods to the read_calls metric, + # # except for the UpdateBook and DeleteBook methods. These two methods + # # are mapped to the write_calls metric, with the UpdateBook method + # # consuming at twice rate as the DeleteBook method. + # metric_rules: + # - selector: "*" + # metric_costs: + # library.googleapis.com/read_calls: 1 + # - selector: google.example.library.v1.LibraryService.UpdateBook + # metric_costs: + # library.googleapis.com/write_calls: 2 + # - selector: google.example.library.v1.LibraryService.DeleteBook + # metric_costs: + # library.googleapis.com/write_calls: 1 + # Corresponding Metric definition: + # metrics: + # - name: library.googleapis.com/read_calls + # display_name: Read requests + # metric_kind: DELTA + # value_type: INT64 + # - name: library.googleapis.com/write_calls + # display_name: Write requests + # metric_kind: DELTA + # value_type: INT64 + # Corresponds to the JSON property `quota` + # @return [Google::Apis::ServicenetworkingV1beta::Quota] + attr_accessor :quota + + # Source information used to create a Service Config + # Corresponds to the JSON property `sourceInfo` + # @return [Google::Apis::ServicenetworkingV1beta::SourceInfo] + attr_accessor :source_info + + # ### System parameter configuration + # A system parameter is a special kind of parameter defined by the API + # system, not by an individual API. It is typically mapped to an HTTP header + # and/or a URL query parameter. This configuration specifies which methods + # change the names of the system parameters. + # Corresponds to the JSON property `systemParameters` + # @return [Google::Apis::ServicenetworkingV1beta::SystemParameters] + attr_accessor :system_parameters + + # A list of all proto message types included in this API service. + # It serves similar purpose as [google.api.Service.types], except that + # these types are not needed by user-defined APIs. Therefore, they will not + # show up in the generated discovery doc. This field should only be used + # to define system APIs in ESF. + # Corresponds to the JSON property `systemTypes` + # @return [Array] + attr_accessor :system_types + + # The product title for this service. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + # A list of all proto message types included in this API service. + # Types referenced directly or indirectly by the `apis` are + # automatically included. Messages which are not referenced but + # shall be included, such as types used by the `google.protobuf.Any` type, + # should be listed here by name. Example: + # types: + # - name: google.protobuf.Int32 + # Corresponds to the JSON property `types` + # @return [Array] + attr_accessor :types + + # Configuration controlling usage of a service. + # Corresponds to the JSON property `usage` + # @return [Google::Apis::ServicenetworkingV1beta::Usage] + attr_accessor :usage + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @apis = args[:apis] if args.key?(:apis) + @authentication = args[:authentication] if args.key?(:authentication) + @backend = args[:backend] if args.key?(:backend) + @billing = args[:billing] if args.key?(:billing) + @config_version = args[:config_version] if args.key?(:config_version) + @context = args[:context] if args.key?(:context) + @control = args[:control] if args.key?(:control) + @custom_error = args[:custom_error] if args.key?(:custom_error) + @documentation = args[:documentation] if args.key?(:documentation) + @endpoints = args[:endpoints] if args.key?(:endpoints) + @enums = args[:enums] if args.key?(:enums) + @experimental = args[:experimental] if args.key?(:experimental) + @http = args[:http] if args.key?(:http) + @id = args[:id] if args.key?(:id) + @logging = args[:logging] if args.key?(:logging) + @logs = args[:logs] if args.key?(:logs) + @metrics = args[:metrics] if args.key?(:metrics) + @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources) + @monitoring = args[:monitoring] if args.key?(:monitoring) + @name = args[:name] if args.key?(:name) + @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id) + @quota = args[:quota] if args.key?(:quota) + @source_info = args[:source_info] if args.key?(:source_info) + @system_parameters = args[:system_parameters] if args.key?(:system_parameters) + @system_types = args[:system_types] if args.key?(:system_types) + @title = args[:title] if args.key?(:title) + @types = args[:types] if args.key?(:types) + @usage = args[:usage] if args.key?(:usage) + end + end + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + class SourceContext + include Google::Apis::Core::Hashable + + # The path-qualified name of the .proto file that contained the associated + # protobuf element. For example: `"google/protobuf/source_context.proto"`. + # Corresponds to the JSON property `fileName` + # @return [String] + attr_accessor :file_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @file_name = args[:file_name] if args.key?(:file_name) + end + end + + # Source information used to create a Service Config + class SourceInfo + include Google::Apis::Core::Hashable + + # All files used during config generation. + # Corresponds to the JSON property `sourceFiles` + # @return [Array>] + attr_accessor :source_files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @source_files = args[:source_files] if args.key?(:source_files) + end + end + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class Status + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # A developer-facing error message, which should be in English. Any + # user-facing error message should be localized and sent in the + # google.rpc.Status.details field, or localized by the client. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # Message returning the created service subnetwork. + class Subnetwork + include Google::Apis::Core::Hashable + + # Subnetwork CIDR range in "10.x.x.x/y" format. + # Corresponds to the JSON property `ipCidrRange` + # @return [String] + attr_accessor :ip_cidr_range + + # Subnetwork name. + # See https://cloud.google.com/compute/docs/vpc/ + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) + @name = args[:name] if args.key?(:name) + end + end + + # Define a parameter's name and location. The parameter may be passed as either + # an HTTP header or a URL query parameter, and if both are passed the behavior + # is implementation-dependent. + class SystemParameter + include Google::Apis::Core::Hashable + + # Define the HTTP header name to use for the parameter. It is case + # insensitive. + # Corresponds to the JSON property `httpHeader` + # @return [String] + attr_accessor :http_header + + # Define the name of the parameter, such as "api_key" . It is case sensitive. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Define the URL query parameter name to use for the parameter. It is case + # sensitive. + # Corresponds to the JSON property `urlQueryParameter` + # @return [String] + attr_accessor :url_query_parameter + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @http_header = args[:http_header] if args.key?(:http_header) + @name = args[:name] if args.key?(:name) + @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter) + end + end + + # Define a system parameter rule mapping system parameter definitions to + # methods. + class SystemParameterRule + include Google::Apis::Core::Hashable + + # Define parameters. Multiple names may be defined for a parameter. + # For a given method call, only one of them should be used. If multiple + # names are used the behavior is implementation-dependent. + # If none of the specified names are present the behavior is + # parameter-dependent. + # Corresponds to the JSON property `parameters` + # @return [Array] + attr_accessor :parameters + + # Selects the methods to which this rule applies. Use '*' to indicate all + # methods in all APIs. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parameters = args[:parameters] if args.key?(:parameters) + @selector = args[:selector] if args.key?(:selector) + end + end + + # ### System parameter configuration + # A system parameter is a special kind of parameter defined by the API + # system, not by an individual API. It is typically mapped to an HTTP header + # and/or a URL query parameter. This configuration specifies which methods + # change the names of the system parameters. + class SystemParameters + include Google::Apis::Core::Hashable + + # Define system parameters. + # The parameters defined here will override the default parameters + # implemented by the system. If this field is missing from the service + # config, default system parameters will be used. Default system parameters + # and names is implementation-dependent. + # Example: define api key for all methods + # system_parameters + # rules: + # - selector: "*" + # parameters: + # - name: api_key + # url_query_parameter: api_key + # Example: define 2 api key names for a specific method. + # system_parameters + # rules: + # - selector: "/ListShelves" + # parameters: + # - name: api_key + # http_header: Api-Key1 + # - name: api_key + # http_header: Api-Key2 + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rules = args[:rules] if args.key?(:rules) + end + end + + # A protocol buffer message type. + class Type + include Google::Apis::Core::Hashable + + # The list of fields. + # Corresponds to the JSON property `fields` + # @return [Array] + attr_accessor :fields + + # The fully qualified message name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The list of types appearing in `oneof` definitions in this type. + # Corresponds to the JSON property `oneofs` + # @return [Array] + attr_accessor :oneofs + + # The protocol buffer options. + # Corresponds to the JSON property `options` + # @return [Array] + attr_accessor :options + + # `SourceContext` represents information about the source of a + # protobuf element, like the file in which it is defined. + # Corresponds to the JSON property `sourceContext` + # @return [Google::Apis::ServicenetworkingV1beta::SourceContext] + attr_accessor :source_context + + # The source syntax. + # Corresponds to the JSON property `syntax` + # @return [String] + attr_accessor :syntax + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fields = args[:fields] if args.key?(:fields) + @name = args[:name] if args.key?(:name) + @oneofs = args[:oneofs] if args.key?(:oneofs) + @options = args[:options] if args.key?(:options) + @source_context = args[:source_context] if args.key?(:source_context) + @syntax = args[:syntax] if args.key?(:syntax) + end + end + + # Configuration controlling usage of a service. + class Usage + include Google::Apis::Core::Hashable + + # The full resource name of a channel used for sending notifications to the + # service producer. + # Google Service Management currently only supports + # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + # channel. To use Google Cloud Pub/Sub as the channel, this must be the name + # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + # documented in https://cloud.google.com/pubsub/docs/overview. + # Corresponds to the JSON property `producerNotificationChannel` + # @return [String] + attr_accessor :producer_notification_channel + + # Requirements that must be satisfied before a consumer project can use the + # service. Each requirement is of the form /; + # for example 'serviceusage.googleapis.com/billing-enabled'. + # Corresponds to the JSON property `requirements` + # @return [Array] + attr_accessor :requirements + + # A list of usage rules that apply to individual API methods. + # **NOTE:** All service configuration rules follow "last one wins" order. + # Corresponds to the JSON property `rules` + # @return [Array] + attr_accessor :rules + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel) + @requirements = args[:requirements] if args.key?(:requirements) + @rules = args[:rules] if args.key?(:rules) + end + end + + # Usage configuration rules for the service. + # NOTE: Under development. + # Use this rule to configure unregistered calls for the service. Unregistered + # calls are calls that do not contain consumer project identity. + # (Example: calls that do not contain an API key). + # By default, API methods do not allow unregistered calls, and each method call + # must be identified by a consumer project identity. Use this rule to + # allow/disallow unregistered calls. + # Example of an API that wants to allow unregistered calls for entire service. + # usage: + # rules: + # - selector: "*" + # allow_unregistered_calls: true + # Example of a method that wants to allow unregistered calls. + # usage: + # rules: + # - selector: "google.example.library.v1.LibraryService.CreateBook" + # allow_unregistered_calls: true + class UsageRule + include Google::Apis::Core::Hashable + + # If true, the selected method allows unregistered calls, e.g. calls + # that don't identify any user or application. + # Corresponds to the JSON property `allowUnregisteredCalls` + # @return [Boolean] + attr_accessor :allow_unregistered_calls + alias_method :allow_unregistered_calls?, :allow_unregistered_calls + + # Selects the methods to which this rule applies. Use '*' to indicate all + # methods in all APIs. + # Refer to selector for syntax details. + # Corresponds to the JSON property `selector` + # @return [String] + attr_accessor :selector + + # If true, the selected method should skip service control and the control + # plane features, such as quota and billing, will not be available. + # This flag is used by Google Cloud Endpoints to bypass checks for internal + # methods, such as service health check methods. + # Corresponds to the JSON property `skipServiceControl` + # @return [Boolean] + attr_accessor :skip_service_control + alias_method :skip_service_control?, :skip_service_control + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls) + @selector = args[:selector] if args.key?(:selector) + @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control) + end + end + end + end +end diff --git a/generated/google/apis/servicenetworking_v1beta/representations.rb b/generated/google/apis/servicenetworking_v1beta/representations.rb new file mode 100644 index 000000000..7bacd95ec --- /dev/null +++ b/generated/google/apis/servicenetworking_v1beta/representations.rb @@ -0,0 +1,1006 @@ +# Copyright 2015 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. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1beta + + class AddSubnetworkRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AddSubnetworkResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Api + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthProvider + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthRequirement + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Authentication + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthenticationRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuthorizationConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Backend + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BackendRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Billing + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BillingDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Connection + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Context + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ContextRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Control + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomError + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomErrorRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CustomHttpPattern + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Documentation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class DocumentationRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Endpoint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Enum + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class EnumValue + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Experimental + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Field + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Http + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class HttpRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LabelDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListConnectionsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LogDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Logging + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class LoggingDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MethodProp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricDescriptorMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MetricRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Mixin + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MonitoredResourceDescriptor + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Monitoring + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class MonitoringDestination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class OAuthRequirements + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Operation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Option + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Page + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Quota + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class QuotaLimit + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Service + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SourceInfo + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Status + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Subnetwork + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameter + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameterRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SystemParameters + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Type + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Usage + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class UsageRule + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AddSubnetworkRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :consumer, as: 'consumer' + property :consumer_network, as: 'consumerNetwork' + property :description, as: 'description' + property :ip_prefix_length, as: 'ipPrefixLength' + property :region, as: 'region' + property :subnetwork, as: 'subnetwork' + collection :subnetwork_users, as: 'subnetworkUsers' + end + end + + class AddSubnetworkResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ip_cidr_range, as: 'ipCidrRange' + property :name, as: 'name' + end + end + + class Api + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :methods_prop, as: 'methods', class: Google::Apis::ServicenetworkingV1beta::MethodProp, decorator: Google::Apis::ServicenetworkingV1beta::MethodProp::Representation + + collection :mixins, as: 'mixins', class: Google::Apis::ServicenetworkingV1beta::Mixin, decorator: Google::Apis::ServicenetworkingV1beta::Mixin::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1beta::SourceContext, decorator: Google::Apis::ServicenetworkingV1beta::SourceContext::Representation + + property :syntax, as: 'syntax' + property :version, as: 'version' + end + end + + class AuthProvider + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :audiences, as: 'audiences' + property :authorization_url, as: 'authorizationUrl' + property :id, as: 'id' + property :issuer, as: 'issuer' + property :jwks_uri, as: 'jwksUri' + end + end + + class AuthRequirement + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :audiences, as: 'audiences' + property :provider_id, as: 'providerId' + end + end + + class Authentication + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :providers, as: 'providers', class: Google::Apis::ServicenetworkingV1beta::AuthProvider, decorator: Google::Apis::ServicenetworkingV1beta::AuthProvider::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::AuthenticationRule, decorator: Google::Apis::ServicenetworkingV1beta::AuthenticationRule::Representation + + end + end + + class AuthenticationRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :allow_without_credential, as: 'allowWithoutCredential' + property :oauth, as: 'oauth', class: Google::Apis::ServicenetworkingV1beta::OAuthRequirements, decorator: Google::Apis::ServicenetworkingV1beta::OAuthRequirements::Representation + + collection :requirements, as: 'requirements', class: Google::Apis::ServicenetworkingV1beta::AuthRequirement, decorator: Google::Apis::ServicenetworkingV1beta::AuthRequirement::Representation + + property :selector, as: 'selector' + end + end + + class AuthorizationConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :provider, as: 'provider' + end + end + + class Backend + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::BackendRule, decorator: Google::Apis::ServicenetworkingV1beta::BackendRule::Representation + + end + end + + class BackendRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :address, as: 'address' + property :deadline, as: 'deadline' + property :min_deadline, as: 'minDeadline' + property :selector, as: 'selector' + end + end + + class Billing + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1beta::BillingDestination, decorator: Google::Apis::ServicenetworkingV1beta::BillingDestination::Representation + + end + end + + class BillingDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :metrics, as: 'metrics' + property :monitored_resource, as: 'monitoredResource' + end + end + + class Connection + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :network, as: 'network' + property :peering, as: 'peering' + collection :reserved_peering_ranges, as: 'reservedPeeringRanges' + end + end + + class Context + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::ContextRule, decorator: Google::Apis::ServicenetworkingV1beta::ContextRule::Representation + + end + end + + class ContextRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :allowed_request_extensions, as: 'allowedRequestExtensions' + collection :allowed_response_extensions, as: 'allowedResponseExtensions' + collection :provided, as: 'provided' + collection :requested, as: 'requested' + property :selector, as: 'selector' + end + end + + class Control + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :environment, as: 'environment' + end + end + + class CustomError + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::CustomErrorRule, decorator: Google::Apis::ServicenetworkingV1beta::CustomErrorRule::Representation + + collection :types, as: 'types' + end + end + + class CustomErrorRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :is_error_type, as: 'isErrorType' + property :selector, as: 'selector' + end + end + + class CustomHttpPattern + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :kind, as: 'kind' + property :path, as: 'path' + end + end + + class Documentation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :documentation_root_url, as: 'documentationRootUrl' + property :overview, as: 'overview' + collection :pages, as: 'pages', class: Google::Apis::ServicenetworkingV1beta::Page, decorator: Google::Apis::ServicenetworkingV1beta::Page::Representation + + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::DocumentationRule, decorator: Google::Apis::ServicenetworkingV1beta::DocumentationRule::Representation + + property :summary, as: 'summary' + end + end + + class DocumentationRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :deprecation_description, as: 'deprecationDescription' + property :description, as: 'description' + property :selector, as: 'selector' + end + end + + class Endpoint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :aliases, as: 'aliases' + property :allow_cors, as: 'allowCors' + collection :features, as: 'features' + property :name, as: 'name' + property :target, as: 'target' + end + end + + class Enum + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :enumvalue, as: 'enumvalue', class: Google::Apis::ServicenetworkingV1beta::EnumValue, decorator: Google::Apis::ServicenetworkingV1beta::EnumValue::Representation + + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1beta::SourceContext, decorator: Google::Apis::ServicenetworkingV1beta::SourceContext::Representation + + property :syntax, as: 'syntax' + end + end + + class EnumValue + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :number, as: 'number' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + end + end + + class Experimental + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :authorization, as: 'authorization', class: Google::Apis::ServicenetworkingV1beta::AuthorizationConfig, decorator: Google::Apis::ServicenetworkingV1beta::AuthorizationConfig::Representation + + end + end + + class Field + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cardinality, as: 'cardinality' + property :default_value, as: 'defaultValue' + property :json_name, as: 'jsonName' + property :kind, as: 'kind' + property :name, as: 'name' + property :number, as: 'number' + property :oneof_index, as: 'oneofIndex' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + property :packed, as: 'packed' + property :type_url, as: 'typeUrl' + end + end + + class Http + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :fully_decode_reserved_expansion, as: 'fullyDecodeReservedExpansion' + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::HttpRule, decorator: Google::Apis::ServicenetworkingV1beta::HttpRule::Representation + + end + end + + class HttpRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additional_bindings, as: 'additionalBindings', class: Google::Apis::ServicenetworkingV1beta::HttpRule, decorator: Google::Apis::ServicenetworkingV1beta::HttpRule::Representation + + property :body, as: 'body' + property :custom, as: 'custom', class: Google::Apis::ServicenetworkingV1beta::CustomHttpPattern, decorator: Google::Apis::ServicenetworkingV1beta::CustomHttpPattern::Representation + + property :delete, as: 'delete' + property :get, as: 'get' + property :patch, as: 'patch' + property :post, as: 'post' + property :put, as: 'put' + property :response_body, as: 'responseBody' + property :selector, as: 'selector' + end + end + + class LabelDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :key, as: 'key' + property :value_type, as: 'valueType' + end + end + + class ListConnectionsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :connections, as: 'connections', class: Google::Apis::ServicenetworkingV1beta::Connection, decorator: Google::Apis::ServicenetworkingV1beta::Connection::Representation + + end + end + + class LogDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1beta::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::LabelDescriptor::Representation + + property :name, as: 'name' + end + end + + class Logging + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1beta::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1beta::LoggingDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1beta::LoggingDestination, decorator: Google::Apis::ServicenetworkingV1beta::LoggingDestination::Representation + + end + end + + class LoggingDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :logs, as: 'logs' + property :monitored_resource, as: 'monitoredResource' + end + end + + class MethodProp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + property :request_streaming, as: 'requestStreaming' + property :request_type_url, as: 'requestTypeUrl' + property :response_streaming, as: 'responseStreaming' + property :response_type_url, as: 'responseTypeUrl' + property :syntax, as: 'syntax' + end + end + + class MetricDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1beta::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::LabelDescriptor::Representation + + property :metadata, as: 'metadata', class: Google::Apis::ServicenetworkingV1beta::MetricDescriptorMetadata, decorator: Google::Apis::ServicenetworkingV1beta::MetricDescriptorMetadata::Representation + + property :metric_kind, as: 'metricKind' + property :name, as: 'name' + property :type, as: 'type' + property :unit, as: 'unit' + property :value_type, as: 'valueType' + end + end + + class MetricDescriptorMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ingest_delay, as: 'ingestDelay' + property :launch_stage, as: 'launchStage' + property :sample_period, as: 'samplePeriod' + end + end + + class MetricRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :metric_costs, as: 'metricCosts' + property :selector, as: 'selector' + end + end + + class Mixin + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :root, as: 'root' + end + end + + class MonitoredResourceDescriptor + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :display_name, as: 'displayName' + collection :labels, as: 'labels', class: Google::Apis::ServicenetworkingV1beta::LabelDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::LabelDescriptor::Representation + + property :name, as: 'name' + property :type, as: 'type' + end + end + + class Monitoring + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :consumer_destinations, as: 'consumerDestinations', class: Google::Apis::ServicenetworkingV1beta::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1beta::MonitoringDestination::Representation + + collection :producer_destinations, as: 'producerDestinations', class: Google::Apis::ServicenetworkingV1beta::MonitoringDestination, decorator: Google::Apis::ServicenetworkingV1beta::MonitoringDestination::Representation + + end + end + + class MonitoringDestination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :metrics, as: 'metrics' + property :monitored_resource, as: 'monitoredResource' + end + end + + class OAuthRequirements + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :canonical_scopes, as: 'canonicalScopes' + end + end + + class Operation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::ServicenetworkingV1beta::Status, decorator: Google::Apis::ServicenetworkingV1beta::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class Option + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + hash :value, as: 'value' + end + end + + class Page + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content, as: 'content' + property :name, as: 'name' + collection :subpages, as: 'subpages', class: Google::Apis::ServicenetworkingV1beta::Page, decorator: Google::Apis::ServicenetworkingV1beta::Page::Representation + + end + end + + class Quota + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :limits, as: 'limits', class: Google::Apis::ServicenetworkingV1beta::QuotaLimit, decorator: Google::Apis::ServicenetworkingV1beta::QuotaLimit::Representation + + collection :metric_rules, as: 'metricRules', class: Google::Apis::ServicenetworkingV1beta::MetricRule, decorator: Google::Apis::ServicenetworkingV1beta::MetricRule::Representation + + end + end + + class QuotaLimit + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :default_limit, :numeric_string => true, as: 'defaultLimit' + property :description, as: 'description' + property :display_name, as: 'displayName' + property :duration, as: 'duration' + property :free_tier, :numeric_string => true, as: 'freeTier' + property :max_limit, :numeric_string => true, as: 'maxLimit' + property :metric, as: 'metric' + property :name, as: 'name' + property :unit, as: 'unit' + hash :values, as: 'values' + end + end + + class Service + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :apis, as: 'apis', class: Google::Apis::ServicenetworkingV1beta::Api, decorator: Google::Apis::ServicenetworkingV1beta::Api::Representation + + property :authentication, as: 'authentication', class: Google::Apis::ServicenetworkingV1beta::Authentication, decorator: Google::Apis::ServicenetworkingV1beta::Authentication::Representation + + property :backend, as: 'backend', class: Google::Apis::ServicenetworkingV1beta::Backend, decorator: Google::Apis::ServicenetworkingV1beta::Backend::Representation + + property :billing, as: 'billing', class: Google::Apis::ServicenetworkingV1beta::Billing, decorator: Google::Apis::ServicenetworkingV1beta::Billing::Representation + + property :config_version, as: 'configVersion' + property :context, as: 'context', class: Google::Apis::ServicenetworkingV1beta::Context, decorator: Google::Apis::ServicenetworkingV1beta::Context::Representation + + property :control, as: 'control', class: Google::Apis::ServicenetworkingV1beta::Control, decorator: Google::Apis::ServicenetworkingV1beta::Control::Representation + + property :custom_error, as: 'customError', class: Google::Apis::ServicenetworkingV1beta::CustomError, decorator: Google::Apis::ServicenetworkingV1beta::CustomError::Representation + + property :documentation, as: 'documentation', class: Google::Apis::ServicenetworkingV1beta::Documentation, decorator: Google::Apis::ServicenetworkingV1beta::Documentation::Representation + + collection :endpoints, as: 'endpoints', class: Google::Apis::ServicenetworkingV1beta::Endpoint, decorator: Google::Apis::ServicenetworkingV1beta::Endpoint::Representation + + collection :enums, as: 'enums', class: Google::Apis::ServicenetworkingV1beta::Enum, decorator: Google::Apis::ServicenetworkingV1beta::Enum::Representation + + property :experimental, as: 'experimental', class: Google::Apis::ServicenetworkingV1beta::Experimental, decorator: Google::Apis::ServicenetworkingV1beta::Experimental::Representation + + property :http, as: 'http', class: Google::Apis::ServicenetworkingV1beta::Http, decorator: Google::Apis::ServicenetworkingV1beta::Http::Representation + + property :id, as: 'id' + property :logging, as: 'logging', class: Google::Apis::ServicenetworkingV1beta::Logging, decorator: Google::Apis::ServicenetworkingV1beta::Logging::Representation + + collection :logs, as: 'logs', class: Google::Apis::ServicenetworkingV1beta::LogDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::LogDescriptor::Representation + + collection :metrics, as: 'metrics', class: Google::Apis::ServicenetworkingV1beta::MetricDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::MetricDescriptor::Representation + + collection :monitored_resources, as: 'monitoredResources', class: Google::Apis::ServicenetworkingV1beta::MonitoredResourceDescriptor, decorator: Google::Apis::ServicenetworkingV1beta::MonitoredResourceDescriptor::Representation + + property :monitoring, as: 'monitoring', class: Google::Apis::ServicenetworkingV1beta::Monitoring, decorator: Google::Apis::ServicenetworkingV1beta::Monitoring::Representation + + property :name, as: 'name' + property :producer_project_id, as: 'producerProjectId' + property :quota, as: 'quota', class: Google::Apis::ServicenetworkingV1beta::Quota, decorator: Google::Apis::ServicenetworkingV1beta::Quota::Representation + + property :source_info, as: 'sourceInfo', class: Google::Apis::ServicenetworkingV1beta::SourceInfo, decorator: Google::Apis::ServicenetworkingV1beta::SourceInfo::Representation + + property :system_parameters, as: 'systemParameters', class: Google::Apis::ServicenetworkingV1beta::SystemParameters, decorator: Google::Apis::ServicenetworkingV1beta::SystemParameters::Representation + + collection :system_types, as: 'systemTypes', class: Google::Apis::ServicenetworkingV1beta::Type, decorator: Google::Apis::ServicenetworkingV1beta::Type::Representation + + property :title, as: 'title' + collection :types, as: 'types', class: Google::Apis::ServicenetworkingV1beta::Type, decorator: Google::Apis::ServicenetworkingV1beta::Type::Representation + + property :usage, as: 'usage', class: Google::Apis::ServicenetworkingV1beta::Usage, decorator: Google::Apis::ServicenetworkingV1beta::Usage::Representation + + end + end + + class SourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :file_name, as: 'fileName' + end + end + + class SourceInfo + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :source_files, as: 'sourceFiles' + end + end + + class Status + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class Subnetwork + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :ip_cidr_range, as: 'ipCidrRange' + property :name, as: 'name' + end + end + + class SystemParameter + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :http_header, as: 'httpHeader' + property :name, as: 'name' + property :url_query_parameter, as: 'urlQueryParameter' + end + end + + class SystemParameterRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :parameters, as: 'parameters', class: Google::Apis::ServicenetworkingV1beta::SystemParameter, decorator: Google::Apis::ServicenetworkingV1beta::SystemParameter::Representation + + property :selector, as: 'selector' + end + end + + class SystemParameters + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::SystemParameterRule, decorator: Google::Apis::ServicenetworkingV1beta::SystemParameterRule::Representation + + end + end + + class Type + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :fields, as: 'fields', class: Google::Apis::ServicenetworkingV1beta::Field, decorator: Google::Apis::ServicenetworkingV1beta::Field::Representation + + property :name, as: 'name' + collection :oneofs, as: 'oneofs' + collection :options, as: 'options', class: Google::Apis::ServicenetworkingV1beta::Option, decorator: Google::Apis::ServicenetworkingV1beta::Option::Representation + + property :source_context, as: 'sourceContext', class: Google::Apis::ServicenetworkingV1beta::SourceContext, decorator: Google::Apis::ServicenetworkingV1beta::SourceContext::Representation + + property :syntax, as: 'syntax' + end + end + + class Usage + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :producer_notification_channel, as: 'producerNotificationChannel' + collection :requirements, as: 'requirements' + collection :rules, as: 'rules', class: Google::Apis::ServicenetworkingV1beta::UsageRule, decorator: Google::Apis::ServicenetworkingV1beta::UsageRule::Representation + + end + end + + class UsageRule + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :allow_unregistered_calls, as: 'allowUnregisteredCalls' + property :selector, as: 'selector' + property :skip_service_control, as: 'skipServiceControl' + end + end + end + end +end diff --git a/generated/google/apis/servicenetworking_v1beta/service.rb b/generated/google/apis/servicenetworking_v1beta/service.rb new file mode 100644 index 000000000..ce981faa7 --- /dev/null +++ b/generated/google/apis/servicenetworking_v1beta/service.rb @@ -0,0 +1,227 @@ +# Copyright 2015 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. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ServicenetworkingV1beta + # Service Networking API + # + # The Service Networking API provides automatic management of network + # configurations necessary for certain services. + # + # @example + # require 'google/apis/servicenetworking_v1beta' + # + # Servicenetworking = Google::Apis::ServicenetworkingV1beta # Alias the module + # service = Servicenetworking::ServiceNetworkingService.new + # + # @see https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/ + class ServiceNetworkingService < Google::Apis::Core::BaseService + # @return [String] + # API key. Your API key identifies your project and provides you with API access, + # quota, and reports. Required unless you provide an OAuth 2.0 token. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + attr_accessor :quota_user + + def initialize + super('https://servicenetworking.googleapis.com/', '') + @batch_path = 'batch' + end + + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1beta::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1beta::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta/{+name}', options) + command.response_representation = Google::Apis::ServicenetworkingV1beta::Operation::Representation + command.response_class = Google::Apis::ServicenetworkingV1beta::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Service producers use this method to provision a new subnet in + # peered service shared VPC network. + # It will validate previously provided allocated ranges, find + # non-conflicting sub-range of requested size (expressed in + # number of leading bits of ipv4 network mask, as in CIDR range + # notation). It will then create a subnetwork in the request + # region. The subsequent call will try to reuse the + # subnetwork previously created if subnetwork name, region and + # prefix length of the IP range match. + # Operation + # @param [String] parent + # Required. This is a 'tenant' project in the service producer organization. + # services/`service`/`collection-id`/`resource-id` + # `collection id` is the cloud resource collection type representing the + # tenant project. Only 'projects' are currently supported. + # `resource id` is the tenant project numeric id: '123456'. + # `service` the name of the peering service, for example + # 'service-peering.example.com'. This service must be activated. + # in the consumer project. + # @param [Google::Apis::ServicenetworkingV1beta::AddSubnetworkRequest] add_subnetwork_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1beta::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1beta::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def add_service_subnetwork(parent, add_subnetwork_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta/{+parent}:addSubnetwork', options) + command.request_representation = Google::Apis::ServicenetworkingV1beta::AddSubnetworkRequest::Representation + command.request_object = add_subnetwork_request_object + command.response_representation = Google::Apis::ServicenetworkingV1beta::Operation::Representation + command.response_class = Google::Apis::ServicenetworkingV1beta::Operation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # To connect service to a VPC network peering connection + # must be established prior to service provisioning. + # This method must be invoked by the consumer VPC network administrator + # It will establish a permanent peering connection with a shared + # network created in the service producer organization and register a + # allocated IP range(s) to be used for service subnetwork provisioning. + # This connection will be used for all supported services in the service + # producer organization, so it only needs to be invoked once. + # Operation. + # @param [String] parent + # Provider peering service that is managing peering connectivity for a + # service provider organization. + # For Google services that support this functionality it is + # 'services/servicenetworking.googleapis.com'. + # @param [Google::Apis::ServicenetworkingV1beta::Connection] connection_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1beta::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1beta::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_service_connection(parent, connection_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta/{+parent}/connections', options) + command.request_representation = Google::Apis::ServicenetworkingV1beta::Connection::Representation + command.request_object = connection_object + command.response_representation = Google::Apis::ServicenetworkingV1beta::Operation::Representation + command.response_class = Google::Apis::ServicenetworkingV1beta::Operation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Service consumers use this method to list configured peering connection for + # the given service and consumer network. + # @param [String] parent + # Provider peering service that is managing peering connectivity for a + # service provider organization. + # For Google services that support this functionality it is + # 'services/servicenetworking.googleapis.com'. + # @param [String] network + # Network name in the consumer project. This network must have been + # already peered with a shared VPC network using CreateConnection + # method. + # Must be in a form 'projects/`project`/global/networks/`network`'. + # `project` is a project number, as in '12345' + # `network` is network name. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicenetworkingV1beta::ListConnectionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicenetworkingV1beta::ListConnectionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_service_connections(parent, network: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta/{+parent}/connections', options) + command.response_representation = Google::Apis::ServicenetworkingV1beta::ListConnectionsResponse::Representation + command.response_class = Google::Apis::ServicenetworkingV1beta::ListConnectionsResponse + command.params['parent'] = parent unless parent.nil? + command.query['network'] = network unless network.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/videointelligence_v1p1beta1.rb b/generated/google/apis/videointelligence_v1p1beta1.rb index 22b0c2c26..86a1f5db3 100644 --- a/generated/google/apis/videointelligence_v1p1beta1.rb +++ b/generated/google/apis/videointelligence_v1p1beta1.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/video-intelligence/docs/ module VideointelligenceV1p1beta1 VERSION = 'V1p1beta1' - REVISION = '20180907' + REVISION = '20180920' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/videointelligence_v1p1beta1/classes.rb b/generated/google/apis/videointelligence_v1p1beta1/classes.rb index 6927bcb85..3e5672888 100644 --- a/generated/google/apis/videointelligence_v1p1beta1/classes.rb +++ b/generated/google/apis/videointelligence_v1p1beta1/classes.rb @@ -1232,6 +1232,14 @@ module Google # @return [Array] attr_accessor :audio_tracks + # *Optional* + # If set, specifies the estimated number of speakers in the conversation. + # If not set, defaults to '2'. + # Ignored unless enable_speaker_diarization is set to true. + # Corresponds to the JSON property `diarizationSpeakerCount` + # @return [Fixnum] + attr_accessor :diarization_speaker_count + # *Optional* If 'true', adds punctuation to recognition result hypotheses. # This feature is only available in select languages. Setting this for # requests in other languages has no effect at all. The default 'false' value @@ -1243,6 +1251,26 @@ module Google attr_accessor :enable_automatic_punctuation alias_method :enable_automatic_punctuation?, :enable_automatic_punctuation + # *Optional* If 'true', enables speaker detection for each recognized word in + # the top alternative of the recognition result using a speaker_tag provided + # in the WordInfo. + # Note: When this is true, we send all the words from the beginning of the + # audio for the top alternative in every consecutive responses. + # This is done in order to improve our speaker tags as our models learn to + # identify the speakers in the conversation over time. + # Corresponds to the JSON property `enableSpeakerDiarization` + # @return [Boolean] + attr_accessor :enable_speaker_diarization + alias_method :enable_speaker_diarization?, :enable_speaker_diarization + + # *Optional* If `true`, the top result includes a list of words and the + # confidence for those words. If `false`, no word-level confidence + # information is returned. The default is `false`. + # Corresponds to the JSON property `enableWordConfidence` + # @return [Boolean] + attr_accessor :enable_word_confidence + alias_method :enable_word_confidence?, :enable_word_confidence + # *Optional* If set to `true`, the server will attempt to filter out # profanities, replacing all but the initial character in each filtered word # with asterisks, e.g. "f***". If set to `false` or omitted, profanities @@ -1282,7 +1310,10 @@ module Google # Update properties of this object def update!(**args) @audio_tracks = args[:audio_tracks] if args.key?(:audio_tracks) + @diarization_speaker_count = args[:diarization_speaker_count] if args.key?(:diarization_speaker_count) @enable_automatic_punctuation = args[:enable_automatic_punctuation] if args.key?(:enable_automatic_punctuation) + @enable_speaker_diarization = args[:enable_speaker_diarization] if args.key?(:enable_speaker_diarization) + @enable_word_confidence = args[:enable_word_confidence] if args.key?(:enable_word_confidence) @filter_profanity = args[:filter_profanity] if args.key?(:filter_profanity) @language_code = args[:language_code] if args.key?(:language_code) @max_alternatives = args[:max_alternatives] if args.key?(:max_alternatives) @@ -1512,6 +1543,16 @@ module Google class GoogleCloudVideointelligenceV1p1beta1WordInfo include Google::Apis::Core::Hashable + # Output only. The confidence estimate between 0.0 and 1.0. A higher number + # indicates an estimated greater likelihood that the recognized words are + # correct. This field is set only for the top alternative. + # This field is not guaranteed to be accurate and users should not rely on it + # to be always provided. + # The default of 0.0 is a sentinel value indicating `confidence` was not set. + # Corresponds to the JSON property `confidence` + # @return [Float] + attr_accessor :confidence + # Time offset relative to the beginning of the audio, and # corresponding to the end of the spoken word. This field is only set if # `enable_word_time_offsets=true` and only in the top hypothesis. This is an @@ -1520,6 +1561,14 @@ module Google # @return [String] attr_accessor :end_time + # Output only. A distinct integer value is assigned for every speaker within + # the audio. This field specifies which one of those speakers was detected to + # have spoken this word. Value ranges from 1 up to diarization_speaker_count, + # and is only set if speaker diarization is enabled. + # Corresponds to the JSON property `speakerTag` + # @return [Fixnum] + attr_accessor :speaker_tag + # Time offset relative to the beginning of the audio, and # corresponding to the start of the spoken word. This field is only set if # `enable_word_time_offsets=true` and only in the top hypothesis. This is an @@ -1539,12 +1588,670 @@ module Google # Update properties of this object def update!(**args) + @confidence = args[:confidence] if args.key?(:confidence) @end_time = args[:end_time] if args.key?(:end_time) + @speaker_tag = args[:speaker_tag] if args.key?(:speaker_tag) @start_time = args[:start_time] if args.key?(:start_time) @word = args[:word] if args.key?(:word) end end + # Video annotation progress. Included in the `metadata` + # field of the `Operation` returned by the `GetOperation` + # call of the `google::longrunning::Operations` service. + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress + include Google::Apis::Core::Hashable + + # Progress metadata for all videos specified in `AnnotateVideoRequest`. + # Corresponds to the JSON property `annotationProgress` + # @return [Array] + attr_accessor :annotation_progress + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @annotation_progress = args[:annotation_progress] if args.key?(:annotation_progress) + end + end + + # Video annotation response. Included in the `response` + # field of the `Operation` returned by the `GetOperation` + # call of the `google::longrunning::Operations` service. + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse + include Google::Apis::Core::Hashable + + # Annotation results for all videos specified in `AnnotateVideoRequest`. + # Corresponds to the JSON property `annotationResults` + # @return [Array] + attr_accessor :annotation_results + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @annotation_results = args[:annotation_results] if args.key?(:annotation_results) + end + end + + # Detected entity from video analysis. + class GoogleCloudVideointelligenceV1p2beta1Entity + include Google::Apis::Core::Hashable + + # Textual description, e.g. `Fixed-gear bicycle`. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Opaque entity ID. Some IDs may be available in + # [Google Knowledge Graph Search + # API](https://developers.google.com/knowledge-graph/). + # Corresponds to the JSON property `entityId` + # @return [String] + attr_accessor :entity_id + + # Language code for `description` in BCP-47 format. + # Corresponds to the JSON property `languageCode` + # @return [String] + attr_accessor :language_code + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @entity_id = args[:entity_id] if args.key?(:entity_id) + @language_code = args[:language_code] if args.key?(:language_code) + end + end + + # Explicit content annotation (based on per-frame visual signals only). + # If no explicit content has been detected in a frame, no annotations are + # present for that frame. + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation + include Google::Apis::Core::Hashable + + # All video frames where explicit content was detected. + # Corresponds to the JSON property `frames` + # @return [Array] + attr_accessor :frames + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @frames = args[:frames] if args.key?(:frames) + end + end + + # Video frame level annotation results for explicit content. + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame + include Google::Apis::Core::Hashable + + # Likelihood of the pornography content.. + # Corresponds to the JSON property `pornographyLikelihood` + # @return [String] + attr_accessor :pornography_likelihood + + # Time-offset, relative to the beginning of the video, corresponding to the + # video frame for this location. + # Corresponds to the JSON property `timeOffset` + # @return [String] + attr_accessor :time_offset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @pornography_likelihood = args[:pornography_likelihood] if args.key?(:pornography_likelihood) + @time_offset = args[:time_offset] if args.key?(:time_offset) + end + end + + # Label annotation. + class GoogleCloudVideointelligenceV1p2beta1LabelAnnotation + include Google::Apis::Core::Hashable + + # Common categories for the detected entity. + # E.g. when the label is `Terrier` the category is likely `dog`. And in some + # cases there might be more than one categories e.g. `Terrier` could also be + # a `pet`. + # Corresponds to the JSON property `categoryEntities` + # @return [Array] + attr_accessor :category_entities + + # Detected entity from video analysis. + # Corresponds to the JSON property `entity` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity] + attr_accessor :entity + + # All video frames where a label was detected. + # Corresponds to the JSON property `frames` + # @return [Array] + attr_accessor :frames + + # All video segments where a label was detected. + # Corresponds to the JSON property `segments` + # @return [Array] + attr_accessor :segments + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @category_entities = args[:category_entities] if args.key?(:category_entities) + @entity = args[:entity] if args.key?(:entity) + @frames = args[:frames] if args.key?(:frames) + @segments = args[:segments] if args.key?(:segments) + end + end + + # Video frame level annotation results for label detection. + class GoogleCloudVideointelligenceV1p2beta1LabelFrame + include Google::Apis::Core::Hashable + + # Confidence that the label is accurate. Range: [0, 1]. + # Corresponds to the JSON property `confidence` + # @return [Float] + attr_accessor :confidence + + # Time-offset, relative to the beginning of the video, corresponding to the + # video frame for this location. + # Corresponds to the JSON property `timeOffset` + # @return [String] + attr_accessor :time_offset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @confidence = args[:confidence] if args.key?(:confidence) + @time_offset = args[:time_offset] if args.key?(:time_offset) + end + end + + # Video segment level annotation results for label detection. + class GoogleCloudVideointelligenceV1p2beta1LabelSegment + include Google::Apis::Core::Hashable + + # Confidence that the label is accurate. Range: [0, 1]. + # Corresponds to the JSON property `confidence` + # @return [Float] + attr_accessor :confidence + + # Video segment. + # Corresponds to the JSON property `segment` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment] + attr_accessor :segment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @confidence = args[:confidence] if args.key?(:confidence) + @segment = args[:segment] if args.key?(:segment) + end + end + + # Normalized bounding box. + # The normalized vertex coordinates are relative to the original image. + # Range: [0, 1]. + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox + include Google::Apis::Core::Hashable + + # Bottom Y coordinate. + # Corresponds to the JSON property `bottom` + # @return [Float] + attr_accessor :bottom + + # Left X coordinate. + # Corresponds to the JSON property `left` + # @return [Float] + attr_accessor :left + + # Right X coordinate. + # Corresponds to the JSON property `right` + # @return [Float] + attr_accessor :right + + # Top Y coordinate. + # Corresponds to the JSON property `top` + # @return [Float] + attr_accessor :top + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @bottom = args[:bottom] if args.key?(:bottom) + @left = args[:left] if args.key?(:left) + @right = args[:right] if args.key?(:right) + @top = args[:top] if args.key?(:top) + end + end + + # Normalized bounding polygon for text (that might not be aligned with axis). + # Contains list of the corner points in clockwise order starting from + # top-left corner. For example, for a rectangular bounding box: + # When the text is horizontal it might look like: + # 0----1 + # | | + # 3----2 + # When it's clockwise rotated 180 degrees around the top-left corner it + # becomes: + # 2----3 + # | | + # 1----0 + # and the vertex order will still be (0, 1, 2, 3). Note that values can be less + # than 0, or greater than 1 due to trignometric calculations for location of + # the box. + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly + include Google::Apis::Core::Hashable + + # Normalized vertices of the bounding polygon. + # Corresponds to the JSON property `vertices` + # @return [Array] + attr_accessor :vertices + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @vertices = args[:vertices] if args.key?(:vertices) + end + end + + # A vertex represents a 2D point in the image. + # NOTE: the normalized vertex coordinates are relative to the original image + # and range from 0 to 1. + class GoogleCloudVideointelligenceV1p2beta1NormalizedVertex + include Google::Apis::Core::Hashable + + # X coordinate. + # Corresponds to the JSON property `x` + # @return [Float] + attr_accessor :x + + # Y coordinate. + # Corresponds to the JSON property `y` + # @return [Float] + attr_accessor :y + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @x = args[:x] if args.key?(:x) + @y = args[:y] if args.key?(:y) + end + end + + # Annotations corresponding to one tracked object. + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation + include Google::Apis::Core::Hashable + + # Object category's labeling confidence of this track. + # Corresponds to the JSON property `confidence` + # @return [Float] + attr_accessor :confidence + + # Detected entity from video analysis. + # Corresponds to the JSON property `entity` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity] + attr_accessor :entity + + # Information corresponding to all frames where this object track appears. + # Corresponds to the JSON property `frames` + # @return [Array] + attr_accessor :frames + + # Video segment. + # Corresponds to the JSON property `segment` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment] + attr_accessor :segment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @confidence = args[:confidence] if args.key?(:confidence) + @entity = args[:entity] if args.key?(:entity) + @frames = args[:frames] if args.key?(:frames) + @segment = args[:segment] if args.key?(:segment) + end + end + + # Video frame level annotations for object detection and tracking. This field + # stores per frame location, time offset, and confidence. + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame + include Google::Apis::Core::Hashable + + # Normalized bounding box. + # The normalized vertex coordinates are relative to the original image. + # Range: [0, 1]. + # Corresponds to the JSON property `normalizedBoundingBox` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox] + attr_accessor :normalized_bounding_box + + # The timestamp of the frame in microseconds. + # Corresponds to the JSON property `timeOffset` + # @return [String] + attr_accessor :time_offset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @normalized_bounding_box = args[:normalized_bounding_box] if args.key?(:normalized_bounding_box) + @time_offset = args[:time_offset] if args.key?(:time_offset) + end + end + + # Annotations related to one detected OCR text snippet. This will contain the + # corresponding text, confidence value, and frame level information for each + # detection. + class GoogleCloudVideointelligenceV1p2beta1TextAnnotation + include Google::Apis::Core::Hashable + + # Confidence for the track of detected text. It is calculated as the highest + # over all frames where OCR detected text appears. + # Corresponds to the JSON property `confidence` + # @return [Float] + attr_accessor :confidence + + # Information related to the frames where OCR detected text appears. + # Corresponds to the JSON property `frames` + # @return [Array] + attr_accessor :frames + + # All video segments where OCR detected text appears. + # Corresponds to the JSON property `segments` + # @return [Array] + attr_accessor :segments + + # The detected text. + # Corresponds to the JSON property `text` + # @return [String] + attr_accessor :text + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @confidence = args[:confidence] if args.key?(:confidence) + @frames = args[:frames] if args.key?(:frames) + @segments = args[:segments] if args.key?(:segments) + @text = args[:text] if args.key?(:text) + end + end + + # Video frame level annotation results for text annotation (OCR). + # Contains information regarding timestamp and bounding box locations for the + # frames containing detected OCR text snippets. + class GoogleCloudVideointelligenceV1p2beta1TextFrame + include Google::Apis::Core::Hashable + + # Normalized bounding polygon for text (that might not be aligned with axis). + # Contains list of the corner points in clockwise order starting from + # top-left corner. For example, for a rectangular bounding box: + # When the text is horizontal it might look like: + # 0----1 + # | | + # 3----2 + # When it's clockwise rotated 180 degrees around the top-left corner it + # becomes: + # 2----3 + # | | + # 1----0 + # and the vertex order will still be (0, 1, 2, 3). Note that values can be less + # than 0, or greater than 1 due to trignometric calculations for location of + # the box. + # Corresponds to the JSON property `rotatedBoundingBox` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly] + attr_accessor :rotated_bounding_box + + # Timestamp of this frame. + # Corresponds to the JSON property `timeOffset` + # @return [String] + attr_accessor :time_offset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @rotated_bounding_box = args[:rotated_bounding_box] if args.key?(:rotated_bounding_box) + @time_offset = args[:time_offset] if args.key?(:time_offset) + end + end + + # Video segment level annotation results for text detection. + class GoogleCloudVideointelligenceV1p2beta1TextSegment + include Google::Apis::Core::Hashable + + # Video segment. + # Corresponds to the JSON property `segment` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment] + attr_accessor :segment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @segment = args[:segment] if args.key?(:segment) + end + end + + # Annotation progress for a single video. + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress + include Google::Apis::Core::Hashable + + # Video file location in + # [Google Cloud Storage](https://cloud.google.com/storage/). + # Corresponds to the JSON property `inputUri` + # @return [String] + attr_accessor :input_uri + + # Approximate percentage processed thus far. Guaranteed to be + # 100 when fully processed. + # Corresponds to the JSON property `progressPercent` + # @return [Fixnum] + attr_accessor :progress_percent + + # Time when the request was received. + # Corresponds to the JSON property `startTime` + # @return [String] + attr_accessor :start_time + + # Time of the most recent update. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @input_uri = args[:input_uri] if args.key?(:input_uri) + @progress_percent = args[:progress_percent] if args.key?(:progress_percent) + @start_time = args[:start_time] if args.key?(:start_time) + @update_time = args[:update_time] if args.key?(:update_time) + end + end + + # Annotation results for a single video. + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults + include Google::Apis::Core::Hashable + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by + # [gRPC](https://github.com/grpc). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleRpcStatus] + attr_accessor :error + + # Explicit content annotation (based on per-frame visual signals only). + # If no explicit content has been detected in a frame, no annotations are + # present for that frame. + # Corresponds to the JSON property `explicitAnnotation` + # @return [Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation] + attr_accessor :explicit_annotation + + # Label annotations on frame level. + # There is exactly one element for each unique label. + # Corresponds to the JSON property `frameLabelAnnotations` + # @return [Array] + attr_accessor :frame_label_annotations + + # Video file location in + # [Google Cloud Storage](https://cloud.google.com/storage/). + # Corresponds to the JSON property `inputUri` + # @return [String] + attr_accessor :input_uri + + # Annotations for list of objects detected and tracked in video. + # Corresponds to the JSON property `objectAnnotations` + # @return [Array] + attr_accessor :object_annotations + + # Label annotations on video level or user specified segment level. + # There is exactly one element for each unique label. + # Corresponds to the JSON property `segmentLabelAnnotations` + # @return [Array] + attr_accessor :segment_label_annotations + + # Shot annotations. Each shot is represented as a video segment. + # Corresponds to the JSON property `shotAnnotations` + # @return [Array] + attr_accessor :shot_annotations + + # Label annotations on shot level. + # There is exactly one element for each unique label. + # Corresponds to the JSON property `shotLabelAnnotations` + # @return [Array] + attr_accessor :shot_label_annotations + + # OCR text detection and tracking. + # Annotations for list of detected text snippets. Each will have list of + # frame information associated with it. + # Corresponds to the JSON property `textAnnotations` + # @return [Array] + attr_accessor :text_annotations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @error = args[:error] if args.key?(:error) + @explicit_annotation = args[:explicit_annotation] if args.key?(:explicit_annotation) + @frame_label_annotations = args[:frame_label_annotations] if args.key?(:frame_label_annotations) + @input_uri = args[:input_uri] if args.key?(:input_uri) + @object_annotations = args[:object_annotations] if args.key?(:object_annotations) + @segment_label_annotations = args[:segment_label_annotations] if args.key?(:segment_label_annotations) + @shot_annotations = args[:shot_annotations] if args.key?(:shot_annotations) + @shot_label_annotations = args[:shot_label_annotations] if args.key?(:shot_label_annotations) + @text_annotations = args[:text_annotations] if args.key?(:text_annotations) + end + end + + # Video segment. + class GoogleCloudVideointelligenceV1p2beta1VideoSegment + include Google::Apis::Core::Hashable + + # Time-offset, relative to the beginning of the video, + # corresponding to the end of the segment (inclusive). + # Corresponds to the JSON property `endTimeOffset` + # @return [String] + attr_accessor :end_time_offset + + # Time-offset, relative to the beginning of the video, + # corresponding to the start of the segment (inclusive). + # Corresponds to the JSON property `startTimeOffset` + # @return [String] + attr_accessor :start_time_offset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @end_time_offset = args[:end_time_offset] if args.key?(:end_time_offset) + @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset) + end + end + # This resource represents a long-running operation that is the result of a # network API call. class GoogleLongrunningOperation diff --git a/generated/google/apis/videointelligence_v1p1beta1/representations.rb b/generated/google/apis/videointelligence_v1p1beta1/representations.rb index 98b5ddf20..d39346f33 100644 --- a/generated/google/apis/videointelligence_v1p1beta1/representations.rb +++ b/generated/google/apis/videointelligence_v1p1beta1/representations.rb @@ -280,6 +280,120 @@ module Google include Google::Apis::Core::JsonObjectSupport end + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1Entity + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1LabelAnnotation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1LabelFrame + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1LabelSegment + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedVertex + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1TextAnnotation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1TextFrame + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1TextSegment + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleCloudVideointelligenceV1p2beta1VideoSegment + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class GoogleLongrunningOperation class Representation < Google::Apis::Core::JsonRepresentation; end @@ -647,7 +761,10 @@ module Google # @private class Representation < Google::Apis::Core::JsonRepresentation collection :audio_tracks, as: 'audioTracks' + property :diarization_speaker_count, as: 'diarizationSpeakerCount' property :enable_automatic_punctuation, as: 'enableAutomaticPunctuation' + property :enable_speaker_diarization, as: 'enableSpeakerDiarization' + property :enable_word_confidence, as: 'enableWordConfidence' property :filter_profanity, as: 'filterProfanity' property :language_code, as: 'languageCode' property :max_alternatives, as: 'maxAlternatives' @@ -714,12 +831,204 @@ module Google class GoogleCloudVideointelligenceV1p1beta1WordInfo # @private class Representation < Google::Apis::Core::JsonRepresentation + property :confidence, as: 'confidence' property :end_time, as: 'endTime' + property :speaker_tag, as: 'speakerTag' property :start_time, as: 'startTime' property :word, as: 'word' end end + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :annotation_progress, as: 'annotationProgress', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :annotation_results, as: 'annotationResults', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1Entity + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :entity_id, as: 'entityId' + property :language_code, as: 'languageCode' + end + end + + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :frames, as: 'frames', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :pornography_likelihood, as: 'pornographyLikelihood' + property :time_offset, as: 'timeOffset' + end + end + + class GoogleCloudVideointelligenceV1p2beta1LabelAnnotation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :category_entities, as: 'categoryEntities', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity::Representation + + property :entity, as: 'entity', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity::Representation + + collection :frames, as: 'frames', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelFrame, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelFrame::Representation + + collection :segments, as: 'segments', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelSegment::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1LabelFrame + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :confidence, as: 'confidence' + property :time_offset, as: 'timeOffset' + end + end + + class GoogleCloudVideointelligenceV1p2beta1LabelSegment + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :confidence, as: 'confidence' + property :segment, as: 'segment', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :bottom, as: 'bottom' + property :left, as: 'left' + property :right, as: 'right' + property :top, as: 'top' + end + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :vertices, as: 'vertices', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedVertex, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedVertex::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1NormalizedVertex + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :x, as: 'x' + property :y, as: 'y' + end + end + + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :confidence, as: 'confidence' + property :entity, as: 'entity', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1Entity::Representation + + collection :frames, as: 'frames', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame::Representation + + property :segment, as: 'segment', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :normalized_bounding_box, as: 'normalizedBoundingBox', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox::Representation + + property :time_offset, as: 'timeOffset' + end + end + + class GoogleCloudVideointelligenceV1p2beta1TextAnnotation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :confidence, as: 'confidence' + collection :frames, as: 'frames', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextFrame, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextFrame::Representation + + collection :segments, as: 'segments', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextSegment::Representation + + property :text, as: 'text' + end + end + + class GoogleCloudVideointelligenceV1p2beta1TextFrame + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :rotated_bounding_box, as: 'rotatedBoundingBox', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly::Representation + + property :time_offset, as: 'timeOffset' + end + end + + class GoogleCloudVideointelligenceV1p2beta1TextSegment + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :segment, as: 'segment', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :input_uri, as: 'inputUri' + property :progress_percent, as: 'progressPercent' + property :start_time, as: 'startTime' + property :update_time, as: 'updateTime' + end + end + + class GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :error, as: 'error', class: Google::Apis::VideointelligenceV1p1beta1::GoogleRpcStatus, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleRpcStatus::Representation + + property :explicit_annotation, as: 'explicitAnnotation', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation::Representation + + collection :frame_label_annotations, as: 'frameLabelAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation::Representation + + property :input_uri, as: 'inputUri' + collection :object_annotations, as: 'objectAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation::Representation + + collection :segment_label_annotations, as: 'segmentLabelAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation::Representation + + collection :shot_annotations, as: 'shotAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1VideoSegment::Representation + + collection :shot_label_annotations, as: 'shotLabelAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1LabelAnnotation::Representation + + collection :text_annotations, as: 'textAnnotations', class: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextAnnotation, decorator: Google::Apis::VideointelligenceV1p1beta1::GoogleCloudVideointelligenceV1p2beta1TextAnnotation::Representation + + end + end + + class GoogleCloudVideointelligenceV1p2beta1VideoSegment + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :end_time_offset, as: 'endTimeOffset' + property :start_time_offset, as: 'startTimeOffset' + end + end + class GoogleLongrunningOperation # @private class Representation < Google::Apis::Core::JsonRepresentation