diff --git a/google/area120/tables/v1alpha1/BUILD.bazel b/google/area120/tables/v1alpha1/BUILD.bazel new file mode 100644 index 0000000000..2dbe235c3d --- /dev/null +++ b/google/area120/tables/v1alpha1/BUILD.bazel @@ -0,0 +1,376 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "tables_proto", + srcs = [ + "tables.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", + ], +) + +proto_library_with_info( + name = "tables_proto_with_info", + deps = [ + ":tables_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "tables_java_proto", + deps = [":tables_proto"], +) + +java_grpc_library( + name = "tables_java_grpc", + srcs = [":tables_proto"], + deps = [":tables_java_proto"], +) + +java_gapic_library( + name = "tables_java_gapic", + src = ":tables_proto_with_info", + gapic_yaml = "language_gapic.yaml", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + test_deps = [ + ":tables_java_grpc", + ], + deps = [ + ":tables_java_proto", + ], +) + +java_gapic_test( + name = "tables_java_gapic_test_suite", + test_classes = [ + "com.google.area120.tables.v1alpha.TablesServiceClientTest", + ], + runtime_deps = [":tables_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-area120-tables-v1alpha1-java", + deps = [ + ":tables_java_gapic", + ":tables_java_grpc", + ":tables_java_proto", + ":tables_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "tables_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/area120/tables/v1alpha1", + protos = [":tables_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "tables_go_gapic", + srcs = [":tables_proto_with_info"], + grpc_service_config = "tables_grpc_service_config.json", + importpath = "google.golang.org/google/area120/tables/v1alpha1;tables", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [ + ":tables_go_proto", + ], +) + +go_test( + name = "tables_go_gapic_test", + srcs = [":tables_go_gapic_srcjar_test"], + embed = [":tables_go_gapic"], + importpath = "google.golang.org/google/area120/tables/v1alpha1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-area120-tables-v1alpha1-go", + deps = [ + ":tables_go_gapic", + ":tables_go_gapic_srcjar-test.srcjar", + ":tables_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "tables_moved_proto", + srcs = [":tables_proto"], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", + ], +) + +py_proto_library( + name = "tables_py_proto", + plugin = "@protoc_docs_plugin//:docs_plugin", + deps = [":tables_moved_proto"], +) + +py_grpc_library( + name = "tables_py_grpc", + srcs = [":tables_moved_proto"], + deps = [":tables_py_proto"], +) + +py_gapic_library( + name = "tables_py_gapic", + src = ":tables_proto_with_info", + gapic_yaml = "language_gapic.yaml", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [ + ":tables_py_grpc", + ":tables_py_proto", + ], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "area120-tables-v1alpha1-py", + deps = [ + ":tables_py_gapic", + ":tables_py_grpc", + ":tables_py_proto", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "tables_php_proto", + deps = [":tables_proto"], +) + +php_grpc_library( + name = "tables_php_grpc", + srcs = [":tables_proto"], + deps = [":tables_php_proto"], +) + +php_gapic_library( + name = "tables_php_gapic", + src = ":tables_proto_with_info", + gapic_yaml = "language_gapic.yaml", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [ + ":tables_php_grpc", + ":tables_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-area120-tables-v1alpha1-php", + deps = [ + ":tables_php_gapic", + ":tables_php_grpc", + ":tables_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "tables_nodejs_gapic", + src = ":tables_proto_with_info", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "area120-tables-v1alpha1-nodejs", + deps = [ + ":tables_nodejs_gapic", + ":tables_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "tables_ruby_proto", + deps = [":tables_proto"], +) + +ruby_grpc_library( + name = "tables_ruby_grpc", + srcs = [":tables_proto"], + deps = [":tables_ruby_proto"], +) + +ruby_gapic_library( + name = "tables_ruby_gapic", + src = ":tables_proto_with_info", + gapic_yaml = "language_gapic.yaml", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [ + ":tables_ruby_grpc", + ":tables_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-area120-tables-v1alpha1-ruby", + deps = [ + ":tables_ruby_gapic", + ":tables_ruby_grpc", + ":tables_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "tables_csharp_proto", + deps = [":tables_proto"], +) + +csharp_grpc_library( + name = "tables_csharp_grpc", + srcs = [":tables_proto"], + deps = [":tables_csharp_proto"], +) + +csharp_gapic_library( + name = "tables_csharp_gapic", + src = ":tables_proto_with_info", + gapic_yaml = "language_gapic.yaml", + grpc_service_config = "tables_grpc_service_config.json", + package = "google.area120.tables.v1alpha1", + service_yaml = "area120tables_v1alpha1.yaml", + deps = [ + ":tables_csharp_grpc", + ":tables_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-area120-tables-v1alpha1-csharp", + deps = [ + ":tables_csharp_gapic", + ":tables_csharp_grpc", + ":tables_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# Put your C++ rules here diff --git a/google/area120/tables/v1alpha1/area120tables_v1alpha1.yaml b/google/area120/tables/v1alpha1/area120tables_v1alpha1.yaml new file mode 100644 index 0000000000..fcc611155b --- /dev/null +++ b/google/area120/tables/v1alpha1/area120tables_v1alpha1.yaml @@ -0,0 +1,40 @@ +type: google.api.Service +config_version: 3 +name: area120tables.googleapis.com +title: Area120 Tables API + +apis: +- name: google.area120.tables.v1alpha1.TablesService + +authentication: + rules: + - selector: 'google.area120.tables.v1alpha1.TablesService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/drive, + https://www.googleapis.com/auth/drive.file, + https://www.googleapis.com/auth/spreadsheets + - selector: google.area120.tables.v1alpha1.TablesService.GetRow + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/drive, + https://www.googleapis.com/auth/drive.file, + https://www.googleapis.com/auth/drive.readonly, + https://www.googleapis.com/auth/spreadsheets, + https://www.googleapis.com/auth/spreadsheets.readonly + - selector: google.area120.tables.v1alpha1.TablesService.GetTable + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/drive, + https://www.googleapis.com/auth/drive.file, + https://www.googleapis.com/auth/drive.readonly, + https://www.googleapis.com/auth/spreadsheets, + https://www.googleapis.com/auth/spreadsheets.readonly + - selector: google.area120.tables.v1alpha1.TablesService.ListRows + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/drive, + https://www.googleapis.com/auth/drive.file, + https://www.googleapis.com/auth/drive.readonly, + https://www.googleapis.com/auth/spreadsheets, + https://www.googleapis.com/auth/spreadsheets.readonly diff --git a/google/area120/tables/v1alpha1/language_gapic.yaml b/google/area120/tables/v1alpha1/language_gapic.yaml new file mode 100644 index 0000000000..5ea09fbd10 --- /dev/null +++ b/google/area120/tables/v1alpha1/language_gapic.yaml @@ -0,0 +1,15 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +# The settings of generated code in a specific language. +language_settings: + java: + package_name: com.google.area120.tables.v1alpha + python: + package_name: google.area120.tables_v1alpha.gapic + go: + package_name: cloud.google.com/go/area120/tables/v1alpha1 + csharp: + package_name: Google.Area120.Tables.V1Alpha + nodejs: + package_name: tables.v1alpha + domain_layer_location: google-area120 diff --git a/google/area120/tables/v1alpha1/tables.proto b/google/area120/tables/v1alpha1/tables.proto new file mode 100644 index 0000000000..fbd83e0f88 --- /dev/null +++ b/google/area120/tables/v1alpha1/tables.proto @@ -0,0 +1,336 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.area120.tables.v1alpha1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "google.golang.org/genproto/googleapis/area120/tables/v1alpha1;tables"; +option java_multiple_files = true; +option java_outer_classname = "TablesProto"; +option java_package = "com.google.area120.tables.v1alpha1"; + +// The Tables Service provides an API for reading and updating tables. +// It defines the following resource model: +// +// - The API has a collection of [Table][google.area120.tables.v1alpha1.Table] +// resources, named `tables/*` +// +// - Each Table has a collection of [Row][google.area120.tables.v1alpha1.Row] +// resources, named `tables/*/rows/*` +service TablesService { + option (google.api.default_host) = "area120tables.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/drive," + "https://www.googleapis.com/auth/drive.file," + "https://www.googleapis.com/auth/drive.readonly," + "https://www.googleapis.com/auth/spreadsheets," + "https://www.googleapis.com/auth/spreadsheets.readonly"; + + // Gets a table. Returns NOT_FOUND if the table does not exist. + rpc GetTable(GetTableRequest) returns (Table) { + option (google.api.http) = { + get: "/v1alpha1/{name=tables/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists tables for the user. + rpc ListTables(ListTablesRequest) returns (ListTablesResponse) { + option (google.api.http) = { + get: "/v1alpha1/tables" + }; + } + + // Gets a row. Returns NOT_FOUND if the row does not exist in the table. + rpc GetRow(GetRowRequest) returns (Row) { + option (google.api.http) = { + get: "/v1alpha1/{name=tables/*/rows/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists rows in a table. Returns NOT_FOUND if the table does not exist. + rpc ListRows(ListRowsRequest) returns (ListRowsResponse) { + option (google.api.http) = { + get: "/v1alpha1/{parent=tables/*}/rows" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a row. + rpc CreateRow(CreateRowRequest) returns (Row) { + option (google.api.http) = { + post: "/v1alpha1/{parent=tables/*}/rows" + body: "row" + }; + option (google.api.method_signature) = "parent,row"; + } + + // Creates multiple rows. + rpc BatchCreateRows(BatchCreateRowsRequest) returns (BatchCreateRowsResponse) { + option (google.api.http) = { + post: "/v1alpha1/{parent=tables/*}/rows:batchCreate" + body: "*" + }; + } + + // Updates a row. + rpc UpdateRow(UpdateRowRequest) returns (Row) { + option (google.api.http) = { + patch: "/v1alpha1/{row.name=tables/*/rows/*}" + body: "row" + }; + option (google.api.method_signature) = "row,update_mask"; + } + + // Updates multiple rows. + rpc BatchUpdateRows(BatchUpdateRowsRequest) returns (BatchUpdateRowsResponse) { + option (google.api.http) = { + post: "/v1alpha1/{parent=tables/*}/rows:batchUpdate" + body: "*" + }; + } + + // Deletes a row. + rpc DeleteRow(DeleteRowRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha1/{name=tables/*/rows/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for TablesService.GetTable. +message GetTableRequest { + // Required. The name of the table to retrieve. + // Format: tables/{table} + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for TablesService.ListTables. +message ListTablesRequest { + // The maximum number of tables to return. The service may return fewer than + // this value. + // + // If unspecified, at most 20 tables are returned. The maximum value is 100; + // values above 100 are coerced to 100. + int32 page_size = 1; + + // A page token, received from a previous `ListTables` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListTables` must match + // the call that provided the page token. + string page_token = 2; +} + +// Response message for TablesService.ListTables. +message ListTablesResponse { + // The list of tables. + repeated Table tables = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is empty, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for TablesService.GetRow. +message GetRowRequest { + // Required. The name of the row to retrieve. + // Format: tables/{table}/rows/{row} + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Column key to use for values in the row. + // Defaults to user entered name. + View view = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for TablesService.ListRows. +message ListRowsRequest { + // Required. The parent table. + // Format: tables/{table} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of rows to return. The service may return fewer than + // this value. + // + // If unspecified, at most 50 rows are returned. The maximum value is 1,000; + // values above 1,000 are coerced to 1,000. + int32 page_size = 2; + + // A page token, received from a previous `ListRows` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRows` must match + // the call that provided the page token. + string page_token = 3; + + // Optional. Column key to use for values in the row. + // Defaults to user entered name. + View view = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for TablesService.ListRows. +message ListRowsResponse { + // The rows from the specified table. + repeated Row rows = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is empty, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for TablesService.CreateRow. +message CreateRowRequest { + // Required. The parent table where this row will be created. + // Format: tables/{table} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The row to create. + Row row = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Column key to use for values in the row. + // Defaults to user entered name. + View view = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for TablesService.BatchCreateRows. +message BatchCreateRowsRequest { + // Required. The parent table where the rows will be created. + // Format: tables/{table} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The request message specifying the rows to create. + // + // A maximum of 500 rows can be created in a single batch. + repeated CreateRowRequest requests = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for TablesService.BatchCreateRows. +message BatchCreateRowsResponse { + // The created rows. + repeated Row rows = 1; +} + +// Request message for TablesService.UpdateRow. +message UpdateRowRequest { + // Required. The row to update. + Row row = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + google.protobuf.FieldMask update_mask = 2; + + // Optional. Column key to use for values in the row. + // Defaults to user entered name. + View view = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for TablesService.BatchUpdateRows. +message BatchUpdateRowsRequest { + // Required. The parent table shared by all rows being updated. + // Format: tables/{table} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The request messages specifying the rows to update. + // + // A maximum of 500 rows can be modified in a single batch. + repeated UpdateRowRequest requests = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for TablesService.BatchUpdateRows. +message BatchUpdateRowsResponse { + // The updated rows. + repeated Row rows = 1; +} + +// Request message for TablesService.DeleteRow +message DeleteRowRequest { + // Required. The name of the row to delete. + // Format: tables/{table}/rows/{row} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "area120tables.googleapis.com/Row" + } + ]; +} + +// A single table. +message Table { + option (google.api.resource) = { + type: "area120tables.googleapis.com/Table" + pattern: "tables/{table}" + }; + + // The resource name of the table. + // Table names have the form `tables/{table}`. + string name = 1; + + // The human readable title of the table. + string display_name = 2; + + // List of columns in this table. + // Order of columns matches the display order. + repeated ColumnDescription columns = 3; +} + +// Details on a column in the table. +message ColumnDescription { + // column name + string name = 1; + + // Data type of the column + // Supported types are number, text, boolean, number_list, text_list, + // boolean_list. + string data_type = 2; + + // Internal id for a column. + string id = 3; +} + +// A single row in a table. +message Row { + option (google.api.resource) = { + type: "area120tables.googleapis.com/Row" + pattern: "tables/{table}/rows/{row}" + }; + + // The resource name of the row. + // Row names have the form `tables/{table}/rows/{row}`. + // The name is ignored when creating a row. + string name = 1; + + // The values of the row. This is a map of column key to value. + // Key is user entered name(default) or the internal column id based on + // the view in the request. + map values = 2; +} + +// Column identifier used for the values in the row. +enum View { + // Defaults to user entered text. + VIEW_UNSPECIFIED = 0; + + // Uses internally generated column id to identify values. + COLUMN_ID_VIEW = 1; +} diff --git a/google/area120/tables/v1alpha1/tables_grpc_service_config.json b/google/area120/tables/v1alpha1/tables_grpc_service_config.json new file mode 100644 index 0000000000..17fbc5ba3b --- /dev/null +++ b/google/area120/tables/v1alpha1/tables_grpc_service_config.json @@ -0,0 +1,28 @@ +{ + "methodConfig": [{ + "name": [{ "service": "google.area120.tables.v1alpha1.TablesService" }], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "ListTables" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "GetTable" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "GetRow" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "ListRows" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "CreateRow" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "BatchCreateRows" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "UpdateRow" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "BatchUpdateRows" }, + { "service": "google.area120.tables.v1alpha1.TablesService", "method": "DeleteRow" } + ], + "timeout": "60s" + }] +} +