diff --git a/gapic/api/artman_logging.yaml b/gapic/api/artman_logging.yaml new file mode 100644 index 000000000..a95ff815c --- /dev/null +++ b/gapic/api/artman_logging.yaml @@ -0,0 +1,29 @@ +logging_common: + api_name: logging-v2 + import_proto_path: + - ${THISDIR}/../.. + src_proto_path: + - ${THISDIR}/../../google/logging/v2 + service_yaml: + - ${THISDIR}/../../google/logging/v2/logging.yaml + auto_merge: true + auto_resolve: true + ignore_base: false + output_dir: ${REPOROOT}/artman/output + gapic_api_yaml: + - ${THISDIR}/../../google/logging/v2/logging_gapic.yaml +logging_type: + api_name: logging-type + import_proto_path: + - ${THISDIR}/../.. + src_proto_path: + - ${THISDIR}/../../google/logging/type + output_dir: ${REPOROOT}/artman/output +logging_java: + final_repo_dir: ${REPOROOT}/gcloud-java/gcloud-java-logging +logging_python: + final_repo_dir: ${REPOROOT}/artman/output/gcloud-python-logging +logging_go: + final_repo_dir: ${REPOROOT}/gapi-logging-go +logging_csharp: + final_repo_dir: ${REPOROOT}/artman/output/gcloud-csharp-logging diff --git a/gapic/api/artman_pubsub.yaml b/gapic/api/artman_pubsub.yaml new file mode 100644 index 000000000..f668f4ec3 --- /dev/null +++ b/gapic/api/artman_pubsub.yaml @@ -0,0 +1,24 @@ +pubsub_common: + api_name: pubsub-v1 + import_proto_path: + - ${THISDIR}/../.. + src_proto_path: + - ${THISDIR}/../../google/pubsub/v1 + service_yaml: + - ${THISDIR}/../../google/pubsub/v1/pubsub.yaml + gapic_api_yaml: + - ${THISDIR}/../../google/pubsub/v1/pubsub_gapic.yaml + auto_merge: true + auto_resolve: true + ignore_base: false + output_dir: ${REPOROOT}/artman/output +pubsub_java: + final_repo_dir: ${REPOROOT}/gcloud-java/gcloud-java-pubsub +pubsub_python: + final_repo_dir: ${REPOROOT}/artman/output/gcloud-python-pubsub +pubsub_go: + final_repo_dir: ${REPOROOT}/gapi-pubsub-go +pubsub_csharp: + final_repo_dir: ${REPOROOT}/artman/output/gcloud-csharp-pubsub +pubsub_php: + final_repo_dir: ${REPOROOT}/artman/output/gcloud-php-pubsub diff --git a/gapic/core/artman_core.yaml b/gapic/core/artman_core.yaml new file mode 100644 index 000000000..0a935f0e1 --- /dev/null +++ b/gapic/core/artman_core.yaml @@ -0,0 +1,7 @@ +core: + api_name: core + import_proto_path: + - ${THISDIR}/../.. + src_proto_path: + - ${THISDIR}/../.. + output_dir: ${REPOROOT}/artman/output diff --git a/gapic/lang/common.yaml b/gapic/lang/common.yaml new file mode 100644 index 000000000..c9f66cc77 --- /dev/null +++ b/gapic/lang/common.yaml @@ -0,0 +1,17 @@ +default: + toolkit_path: ${REPOROOT}/toolkit +java: + gapic_language_yaml: + - ${THISDIR}/java_gapic.yaml +python: + gapic_language_yaml: + - ${THISDIR}/python_gapic.yaml +go: + gapic_language_yaml: + - ${THISDIR}/go_gapic.yaml +csharp: + gapic_language_yaml: + - ${THISDIR}/csharp_gapic.yaml +php: + gapic_language_yaml: + - ${THISDIR}/php_gapic.yaml diff --git a/gapic/lang/csharp_gapic.yaml b/gapic/lang/csharp_gapic.yaml new file mode 100644 index 000000000..50c16f52e --- /dev/null +++ b/gapic/lang/csharp_gapic.yaml @@ -0,0 +1,6 @@ +type: io.gapi.vgen.ConfigProto +language: csharp +language_provider: io.gapi.vgen.csharp.CSharpGapicLanguageProvider +snippet_files: +- wrapper.snip +archive: false diff --git a/gapic/lang/go_gapic.yaml b/gapic/lang/go_gapic.yaml new file mode 100644 index 000000000..7f118ba5e --- /dev/null +++ b/gapic/lang/go_gapic.yaml @@ -0,0 +1,6 @@ +type: io.gapi.vgen.ConfigProto +language: go +language_provider: io.gapi.vgen.go.GoGapicLanguageProvider +snippet_files: +- main.snip +- doc.snip diff --git a/gapic/lang/java_gapic.yaml b/gapic/lang/java_gapic.yaml new file mode 100644 index 000000000..d4d855758 --- /dev/null +++ b/gapic/lang/java_gapic.yaml @@ -0,0 +1,7 @@ +type: io.gapi.vgen.ConfigProto +language: java +language_provider: io.gapi.vgen.java.JavaGapicLanguageProvider +snippet_files: +- main.snip +- settings.snip +archive: false diff --git a/gapic/lang/php_gapic.yaml b/gapic/lang/php_gapic.yaml new file mode 100644 index 000000000..59795b5fb --- /dev/null +++ b/gapic/lang/php_gapic.yaml @@ -0,0 +1,5 @@ +type: io.gapi.vgen.ConfigProto +language: php +language_provider: io.gapi.vgen.py.PhpGapicLanguageProvider +snippet_files: +- main.snip diff --git a/gapic/lang/python_gapic.yaml b/gapic/lang/python_gapic.yaml new file mode 100644 index 000000000..bfb049165 --- /dev/null +++ b/gapic/lang/python_gapic.yaml @@ -0,0 +1,7 @@ +type: io.gapi.vgen.ConfigProto +language: python +language_provider: io.gapi.vgen.py.PythonGapicLanguageProvider +snippet_files: +- main.snip +doc_snippet_files: +- message.snip diff --git a/google/logging/v2/logging.yaml b/google/logging/v2/logging.yaml new file mode 100644 index 000000000..a09294362 --- /dev/null +++ b/google/logging/v2/logging.yaml @@ -0,0 +1,80 @@ +# Google Cloud Logging API service configuration + +type: google.api.Service +config_version: 2 +name: logging.googleapis.com +title: Google Cloud Logging API + +apis: +- name: google.logging.v2.LoggingServiceV2 +- name: google.logging.v2.ConfigServiceV2 +- name: google.logging.v2.MetricsServiceV2 + +documentation: + summary: + The Google Cloud Logging API lets you write log + entries and manage your logs, log sinks and logs-based metrics. + overview: | + (== suppress_warning versioning-http-version-prefix ==) + +# Auth section +authentication: + rules: + - selector: |- + google.logging.v1.LoggingService.DeleteLog, + google.logging.v1.ConfigService.CreateLogServiceSink, + google.logging.v1.ConfigService.CreateLogSink, + google.logging.v1.ConfigService.CreateSink, + google.logging.v1.ConfigService.DeleteLogServiceSink, + google.logging.v1.ConfigService.DeleteLogSink, + google.logging.v1.ConfigService.DeleteSink, + google.logging.v1.ConfigService.UpdateLogServiceSink, + google.logging.v1.ConfigService.UpdateLogSink, + google.logging.v1.ConfigService.UpdateSink, + google.logging.v2.LoggingServiceV2.DeleteLog, + google.logging.v2.ConfigServiceV2.CreateSink, + google.logging.v2.ConfigServiceV2.DeleteSink, + google.logging.v2.ConfigServiceV2.UpdateSink, + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/logging.admin, + https://www.googleapis.com/auth/cloud-platform + - selector: |- + google.logging.v1.LoggingService.ListLogEntries, + google.logging.v1.LoggingService.ListLogServiceIndexes, + google.logging.v1.LoggingService.ListLogServices, + google.logging.v1.LoggingService.ListLogs, + google.logging.v1.ConfigService.GetLogServiceSink, + google.logging.v1.ConfigService.GetLogSink, + google.logging.v1.ConfigService.GetSink, + google.logging.v1.ConfigService.ListLogServiceSinks, + google.logging.v1.ConfigService.ListLogSinks, + google.logging.v1.ConfigService.ListSinks, + google.logging.v1.MetricsService.GetLogMetric, + google.logging.v1.MetricsService.ListLogMetrics, + google.logging.v2.LoggingServiceV2.ListLogEntries, + google.logging.v2.LoggingServiceV2.ListMonitoredResourceDescriptors, + google.logging.v2.ConfigServiceV2.GetSink, + google.logging.v2.ConfigServiceV2.ListSinks, + google.logging.v2.MetricsServiceV2.GetLogMetric, + google.logging.v2.MetricsServiceV2.ListLogMetrics + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/logging.read, + https://www.googleapis.com/auth/logging.admin, + https://www.googleapis.com/auth/cloud-platform.read-only, + https://www.googleapis.com/auth/cloud-platform + - selector: |- + google.logging.v1.LoggingService.WriteLogEntries, + google.logging.v1.MetricsService.CreateLogMetric, + google.logging.v1.MetricsService.DeleteLogMetric, + google.logging.v1.MetricsService.UpdateLogMetric, + google.logging.v2.LoggingServiceV2.WriteLogEntries, + google.logging.v2.MetricsServiceV2.CreateLogMetric, + google.logging.v2.MetricsServiceV2.DeleteLogMetric, + google.logging.v2.MetricsServiceV2.UpdateLogMetric + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/logging.write, + https://www.googleapis.com/auth/logging.admin, + https://www.googleapis.com/auth/cloud-platform diff --git a/google/logging/v2/logging_gapic.yaml b/google/logging/v2/logging_gapic.yaml new file mode 100644 index 000000000..d5b489c4d --- /dev/null +++ b/google/logging/v2/logging_gapic.yaml @@ -0,0 +1,242 @@ +type: io.gapi.vgen.ConfigProto +language_settings: + java: + package_name: com.google.cloud.logging.spi.v2 + python: + package_name: gcloud.logging + go: + package_name: google.golang.org/cloud/logging + csharp: + package_name: Google.Logging.V2 +interfaces: +- name: google.logging.v2.ConfigServiceV2 + collections: + - name_pattern: projects/{project} + method_base_name: project + - name_pattern: projects/{project}/sinks/{sink} + method_base_name: sink + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 2000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + methods: + - name: ListSinks + flattening: + groups: + - parameters: + - project_name + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: sinks + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true + + - name: GetSink + flattening: + groups: + - parameters: + - sink_name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + + - name: CreateSink + flattening: + groups: + - parameters: + - project_name + - sink + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + + - name: UpdateSink + flattening: + groups: + - parameters: + - sink_name + - sink + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + + - name: DeleteSink + flattening: + groups: + - parameters: + - sink_name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + +- name: google.logging.v2.MetricsServiceV2 + collections: + - name_pattern: projects/{project} + method_base_name: project + - name_pattern: projects/{project}/metrics/{metric} + method_base_name: metric + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 2000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + methods: + - name: ListLogMetrics + flattening: + groups: + - parameters: + - project_name + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: metrics + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true + + - name: GetLogMetric + flattening: + groups: + - parameters: + - metric_name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + + - name: CreateLogMetric + flattening: + groups: + - parameters: + - project_name + - metric + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + + - name: UpdateLogMetric + flattening: + groups: + - parameters: + - metric_name + - metric + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + + - name: DeleteLogMetric + flattening: + groups: + - parameters: + - metric_name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + +- name: google.logging.v2.LoggingServiceV2 + collections: + - name_pattern: projects/{project} + method_base_name: project + - name_pattern: projects/{project}/logs/{log} + method_base_name: log + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 2000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + - name: list + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 7000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + methods: + - name: DeleteLog + flattening: + groups: + - parameters: + - log_name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + + - name: WriteLogEntries + flattening: + groups: + - parameters: + - log_name + - resource + - labels + - entries + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + + - name: ListLogEntries + flattening: + groups: + - parameters: + - project_ids + - filter + - order_by + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: entries + retry_codes_name: idempotent + retry_params_name: list + request_object_method: true + + - name: ListMonitoredResourceDescriptors + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: resource_descriptors + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true diff --git a/google/pubsub/v1/pubsub.yaml b/google/pubsub/v1/pubsub.yaml new file mode 100644 index 000000000..0b80db090 --- /dev/null +++ b/google/pubsub/v1/pubsub.yaml @@ -0,0 +1,52 @@ +# Google Cloud Pub/Sub API service configuration + +type: google.api.Service +config_version: 1 +name: pubsub-experimental.googleapis.com + +title: Google Cloud Pub/Sub API + +documentation: + summary: > + Provides reliable, many-to-many, asynchronous messaging between + applications. + rules: + - selector: > + google.pubsub.v1.Topic.name, + description: | + The name of the topic. It must have the format + `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, + and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), + underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent + signs (`%`). It must be between 3 and 255 characters in length, and it + must not start with `"goog"`. + - selector: > + google.pubsub.v1.Subscription.name, + description: | + The name of the subscription. It must have the format + `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must + start with a letter, and contain only letters (`[A-Za-z]`), numbers + (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), + plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters + in length, and it must not start with `"goog"`. + +apis: +- name: google.pubsub.v1.Publisher +- name: google.pubsub.v1.Subscriber + +# Pass origin and project RpcServerExtensions to the backend. +context: + rules: + - selector: '*' + requested: + - google.rpc.context.OriginContext + - google.rpc.context.ProjectContext + +# Auth section +authentication: + rules: + - selector: '*' + oauth: + canonical_scopes: https://www.googleapis.com/auth/pubsub, + https://www.googleapis.com/auth/cloud-platform + diff --git a/google/pubsub/v1/pubsub_gapic.yaml b/google/pubsub/v1/pubsub_gapic.yaml new file mode 100644 index 000000000..76fea6c0b --- /dev/null +++ b/google/pubsub/v1/pubsub_gapic.yaml @@ -0,0 +1,246 @@ +type: io.gapi.vgen.ConfigProto +language_settings: + java: + package_name: com.google.cloud.pubsub.spi.v1 + python: + package_name: gcloud.pubsub + go: + package_name: google.golang.org/cloud/pubsub + csharp: + package_name: Google.Pubsub.V1 +interfaces: +- name: google.pubsub.v1.Subscriber + collections: + - name_pattern: projects/{project} + method_base_name: project + - name_pattern: projects/{project}/subscriptions/{subscription} + method_base_name: subscription + - name_pattern: projects/{project}/topics/{topic} + method_base_name: topic + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 2000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + methods: + - name: CreateSubscription + flattening: + groups: + - parameters: + - name + - topic + - push_config + - ack_deadline_seconds + required_fields: + - name + - topic + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + - name: GetSubscription + flattening: + groups: + - parameters: + - subscription + required_fields: + - subscription + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + - name: ListSubscriptions + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: subscriptions + flattening: + groups: + - parameters: + - project + required_fields: + - project + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true + - name: DeleteSubscription + flattening: + groups: + - parameters: + - subscription + required_fields: + - subscription + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + - name: ModifyAckDeadline + flattening: + groups: + - parameters: + - subscription + - ack_ids + - ack_deadline_seconds + required_fields: + - subscription + - ack_ids + - ack_deadline_seconds + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + - name: Acknowledge + flattening: + groups: + - parameters: + - subscription + - ack_ids + required_fields: + - subscription + - ack_ids + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + - name: Pull + flattening: + groups: + - parameters: + - subscription + - return_immediately + - max_messages + required_fields: + - subscription + - max_messages + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + - name: ModifyPushConfig + flattening: + groups: + - parameters: + - subscription + - push_config + required_fields: + - subscription + - push_config + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true +- name: google.pubsub.v1.Publisher + collections: + - name_pattern: projects/{project} + method_base_name: project + - name_pattern: projects/{project}/topics/{topic} + method_base_name: topic + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.2 + max_retry_delay_millis: 1000 + initial_rpc_timeout_millis: 2000 + rpc_timeout_multiplier: 1.5 + max_rpc_timeout_millis: 30000 + total_timeout_millis: 45000 + methods: + - name: CreateTopic + flattening: + groups: + - parameters: + - name + required_fields: + - name + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + - name: Publish + flattening: + groups: + - parameters: + - topic + - messages + required_fields: + - topic + - messages + retry_codes_name: non_idempotent + retry_params_name: default + request_object_method: true + bundling: + thresholds: + element_count_threshold: 800 + element_count_limit: 1000 # server limit + request_byte_threshold: 8388608 # 8 mb + request_byte_limit: 10485760 # 10 mb - server limit + delay_threshold_millis: 100 + bundle_descriptor: + bundled_field: messages + discriminator_fields: + - topic + subresponse_field: message_ids + - name: GetTopic + flattening: + groups: + - parameters: + - topic + required_fields: + - topic + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false + - name: ListTopics + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: topics + flattening: + groups: + - parameters: + - project + required_fields: + - project + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true + - name: ListTopicSubscriptions + page_streaming: + request: + token_field: page_token + response: + token_field: next_page_token + resources_field: subscriptions + flattening: + groups: + - parameters: + - topic + required_fields: + - topic + retry_codes_name: idempotent + retry_params_name: default + request_object_method: true + - name: DeleteTopic + flattening: + groups: + - parameters: + - topic + required_fields: + - topic + retry_codes_name: idempotent + retry_params_name: default + request_object_method: false