diff --git a/clients/big_lake/.gitignore b/clients/big_lake/.gitignore new file mode 100644 index 0000000000..6bf4496152 --- /dev/null +++ b/clients/big_lake/.gitignore @@ -0,0 +1,37 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +# The directory Mix will write compiled artifacts to. +/_build + +# If you run "mix test --cover", coverage assets end up here. +/cover + +# The directory Mix downloads your dependencies sources to. +/deps + +# Where 3rd-party dependencies like ExDoc output generated docs. +/doc + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez diff --git a/clients/big_lake/LICENSE b/clients/big_lake/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/clients/big_lake/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/clients/big_lake/README.md b/clients/big_lake/README.md new file mode 100644 index 0000000000..ef5c20a313 --- /dev/null +++ b/clients/big_lake/README.md @@ -0,0 +1,23 @@ +# GoogleApi.BigLake + +BigLake API client library. + +The BigLake API provides access to BigLake Metastore, a serverless, fully managed, and highly available metastore for open-source data that can be used for querying Apache Iceberg tables in BigQuery. + +## Installation + +Install this package from [Hex](https://hex.pm) by adding +`google_api_big_lake` to your list of dependencies in `mix.exs`: + +```elixir +def deps do + [{:google_api_big_lake, "~> 0.2"}] +end +``` + +## For more information + +Product documentation is available at [https://cloud.google.com/bigquery/](https://cloud.google.com/bigquery/). + +Library reference documentation is published on Hexdocs at +[https://hexdocs.pm/google_api_big_lake](https://hexdocs.pm/google_api_big_lake). diff --git a/clients/big_lake/config/config.exs b/clients/big_lake/config/config.exs new file mode 100644 index 0000000000..07afe5f311 --- /dev/null +++ b/clients/big_lake/config/config.exs @@ -0,0 +1,20 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +use Mix.Config + + diff --git a/clients/big_lake/lib/google_api/big_lake/v1/api/projects.ex b/clients/big_lake/lib/google_api/big_lake/v1/api/projects.ex new file mode 100644 index 0000000000..c175a2fbd0 --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/api/projects.ex @@ -0,0 +1,1108 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Api.Projects do + @moduledoc """ + API calls for all endpoints tagged `Projects`. + """ + + alias GoogleApi.BigLake.V1.Connection + alias GoogleApi.Gax.{Request, Response} + + @library_version Mix.Project.config() |> Keyword.get(:version, "") + + @doc """ + Creates a new catalog. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent resource where this catalog will be created. Format: projects/{project_id_or_number}/locations/{location_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:catalogId` (*type:* `String.t`) - Required. The ID to use for the catalog, which will become the final component of the catalog's resource name. + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.Catalog.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Catalog{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_create( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Catalog.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_create( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :catalogId => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:post) + |> Request.url("/v1/{+parent}/catalogs", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Catalog{}]) + end + + @doc """ + Deletes an existing catalog specified by the catalog ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the catalog to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Catalog{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_delete( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Catalog.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_delete( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:delete) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Catalog{}]) + end + + @doc """ + Gets the catalog specified by the resource name. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the catalog to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Catalog{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_get( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Catalog.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_get(connection, name, optional_params \\ [], opts \\ []) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Catalog{}]) + end + + @doc """ + List all catalogs in a specified project. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent, which owns this collection of catalogs. Format: projects/{project_id_or_number}/locations/{location_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:pageSize` (*type:* `integer()`) - The maximum number of catalogs to return. The service may return fewer than this value. If unspecified, at most 50 catalogs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. + * `:pageToken` (*type:* `String.t`) - A page token, received from a previous `ListCatalogs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCatalogs` must match the call that provided the page token. + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.ListCatalogsResponse{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_list( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.ListCatalogsResponse.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_list( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :pageSize => :query, + :pageToken => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+parent}/catalogs", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.ListCatalogsResponse{}]) + end + + @doc """ + Creates a new database. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent resource where this database will be created. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:databaseId` (*type:* `String.t`) - Required. The ID to use for the database, which will become the final component of the database's resource name. + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.Database.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Database{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_create( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Database.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_create( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :databaseId => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:post) + |> Request.url("/v1/{+parent}/databases", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Database{}]) + end + + @doc """ + Deletes an existing database specified by the database ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the database to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Database{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_delete( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Database.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_delete( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:delete) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Database{}]) + end + + @doc """ + Gets the database specified by the resource name. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the database to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Database{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_get( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Database.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_get( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Database{}]) + end + + @doc """ + List all databases in a specified catalog. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent, which owns this collection of databases. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:pageSize` (*type:* `integer()`) - The maximum number of databases to return. The service may return fewer than this value. If unspecified, at most 50 databases will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. + * `:pageToken` (*type:* `String.t`) - A page token, received from a previous `ListDatabases` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDatabases` must match the call that provided the page token. + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.ListDatabasesResponse{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_list( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.ListDatabasesResponse.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_list( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :pageSize => :query, + :pageToken => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+parent}/databases", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.ListDatabasesResponse{}]) + end + + @doc """ + Updates an existing database specified by the database ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:updateMask` (*type:* `String.t`) - The list of fields to update. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If not set, defaults to all of the fields that are allowed to update. + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.Database.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Database{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_patch( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Database.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_patch( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :updateMask => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:patch) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Database{}]) + end + + @doc """ + Creates a new table. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent resource where this table will be created. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:tableId` (*type:* `String.t`) - Required. The ID to use for the table, which will become the final component of the table's resource name. + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.Table.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Table{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_create( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Table.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_create( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :tableId => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:post) + |> Request.url("/v1/{+parent}/tables", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Table{}]) + end + + @doc """ + Deletes an existing table specified by the table ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the table to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Table{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_delete( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Table.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_delete( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:delete) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Table{}]) + end + + @doc """ + Gets the table specified by the resource name. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The name of the table to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Table{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_get( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Table.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_get( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Table{}]) + end + + @doc """ + List all tables in a specified database. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `parent` (*type:* `String.t`) - Required. The parent, which owns this collection of tables. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:pageSize` (*type:* `integer()`) - The maximum number of tables to return. The service may return fewer than this value. If unspecified, at most 50 tables will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. + * `:pageToken` (*type:* `String.t`) - 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. + * `:view` (*type:* `String.t`) - The view for the returned tables. + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.ListTablesResponse{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_list( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.ListTablesResponse.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_list( + connection, + parent, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :pageSize => :query, + :pageToken => :query, + :view => :query + } + + request = + Request.new() + |> Request.method(:get) + |> Request.url("/v1/{+parent}/tables", %{ + "parent" => URI.encode(parent, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.ListTablesResponse{}]) + end + + @doc """ + Updates an existing table specified by the table ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:updateMask` (*type:* `String.t`) - The list of fields to update. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If not set, defaults to all of the fields that are allowed to update. + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.Table.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Table{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_patch( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Table.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_patch( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :updateMask => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:patch) + |> Request.url("/v1/{+name}", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Table{}]) + end + + @doc """ + Renames an existing table specified by the table ID. + + ## Parameters + + * `connection` (*type:* `GoogleApi.BigLake.V1.Connection.t`) - Connection to server + * `name` (*type:* `String.t`) - Required. The table's `name` field is used to identify the table to rename. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + * `optional_params` (*type:* `keyword()`) - Optional parameters + * `:"$.xgafv"` (*type:* `String.t`) - V1 error format. + * `:access_token` (*type:* `String.t`) - OAuth access token. + * `:alt` (*type:* `String.t`) - Data format for response. + * `:callback` (*type:* `String.t`) - JSONP + * `:fields` (*type:* `String.t`) - Selector specifying which fields to include in a partial response. + * `:key` (*type:* `String.t`) - 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. + * `:oauth_token` (*type:* `String.t`) - OAuth 2.0 token for the current user. + * `:prettyPrint` (*type:* `boolean()`) - Returns response with indentations and line breaks. + * `:quotaUser` (*type:* `String.t`) - 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. + * `:uploadType` (*type:* `String.t`) - Legacy upload protocol for media (e.g. "media", "multipart"). + * `:upload_protocol` (*type:* `String.t`) - Upload protocol for media (e.g. "raw", "multipart"). + * `:body` (*type:* `GoogleApi.BigLake.V1.Model.RenameTableRequest.t`) - + * `opts` (*type:* `keyword()`) - Call options + + ## Returns + + * `{:ok, %GoogleApi.BigLake.V1.Model.Table{}}` on success + * `{:error, info}` on failure + """ + @spec biglake_projects_locations_catalogs_databases_tables_rename( + Tesla.Env.client(), + String.t(), + keyword(), + keyword() + ) :: + {:ok, GoogleApi.BigLake.V1.Model.Table.t()} + | {:ok, Tesla.Env.t()} + | {:ok, list()} + | {:error, any()} + def biglake_projects_locations_catalogs_databases_tables_rename( + connection, + name, + optional_params \\ [], + opts \\ [] + ) do + optional_params_config = %{ + :"$.xgafv" => :query, + :access_token => :query, + :alt => :query, + :callback => :query, + :fields => :query, + :key => :query, + :oauth_token => :query, + :prettyPrint => :query, + :quotaUser => :query, + :uploadType => :query, + :upload_protocol => :query, + :body => :body + } + + request = + Request.new() + |> Request.method(:post) + |> Request.url("/v1/{+name}:rename", %{ + "name" => URI.encode(name, &URI.char_unreserved?/1) + }) + |> Request.add_optional_params(optional_params_config, optional_params) + |> Request.library_version(@library_version) + + connection + |> Connection.execute(request) + |> Response.decode(opts ++ [struct: %GoogleApi.BigLake.V1.Model.Table{}]) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/connection.ex b/clients/big_lake/lib/google_api/big_lake/v1/connection.ex new file mode 100644 index 0000000000..d99cbba785 --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/connection.ex @@ -0,0 +1,35 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Connection do + @moduledoc """ + Handle Tesla connections for GoogleApi.BigLake.V1. + """ + + @type t :: Tesla.Env.client() + + use GoogleApi.Gax.Connection, + scopes: [ + # View and manage your data in Google BigQuery and see the email address for your Google Account + "https://www.googleapis.com/auth/bigquery", + + # See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. + "https://www.googleapis.com/auth/cloud-platform" + ], + otp_app: :google_api_big_lake, + base_url: "https://biglake.googleapis.com/" +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/metadata.ex b/clients/big_lake/lib/google_api/big_lake/v1/metadata.ex new file mode 100644 index 0000000000..1336a626de --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/metadata.ex @@ -0,0 +1,26 @@ +# 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1 do + @moduledoc """ + API client metadata for GoogleApi.BigLake.V1. + """ + + @discovery_revision "20240304" + + def discovery_revision(), do: @discovery_revision +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/catalog.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/catalog.ex new file mode 100644 index 0000000000..cf84b6b00e --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/catalog.ex @@ -0,0 +1,58 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.Catalog do + @moduledoc """ + Catalog is the container of databases. + + ## Attributes + + * `createTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The creation time of the catalog. + * `deleteTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The deletion time of the catalog. Only set after the catalog is deleted. + * `expireTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The time when this catalog is considered expired. Only set after the catalog is deleted. + * `name` (*type:* `String.t`, *default:* `nil`) - Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id} + * `updateTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The last modification time of the catalog. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :createTime => DateTime.t() | nil, + :deleteTime => DateTime.t() | nil, + :expireTime => DateTime.t() | nil, + :name => String.t() | nil, + :updateTime => DateTime.t() | nil + } + + field(:createTime, as: DateTime) + field(:deleteTime, as: DateTime) + field(:expireTime, as: DateTime) + field(:name) + field(:updateTime, as: DateTime) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.Catalog do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.Catalog.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.Catalog do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/database.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/database.ex new file mode 100644 index 0000000000..495ad56beb --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/database.ex @@ -0,0 +1,64 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.Database do + @moduledoc """ + Database is the container of tables. + + ## Attributes + + * `createTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The creation time of the database. + * `deleteTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The deletion time of the database. Only set after the database is deleted. + * `expireTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The time when this database is considered expired. Only set after the database is deleted. + * `hiveOptions` (*type:* `GoogleApi.BigLake.V1.Model.HiveDatabaseOptions.t`, *default:* `nil`) - Options of a Hive database. + * `name` (*type:* `String.t`, *default:* `nil`) - Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id} + * `type` (*type:* `String.t`, *default:* `nil`) - The database type. + * `updateTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The last modification time of the database. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :createTime => DateTime.t() | nil, + :deleteTime => DateTime.t() | nil, + :expireTime => DateTime.t() | nil, + :hiveOptions => GoogleApi.BigLake.V1.Model.HiveDatabaseOptions.t() | nil, + :name => String.t() | nil, + :type => String.t() | nil, + :updateTime => DateTime.t() | nil + } + + field(:createTime, as: DateTime) + field(:deleteTime, as: DateTime) + field(:expireTime, as: DateTime) + field(:hiveOptions, as: GoogleApi.BigLake.V1.Model.HiveDatabaseOptions) + field(:name) + field(:type) + field(:updateTime, as: DateTime) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.Database do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.Database.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.Database do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/hive_database_options.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/hive_database_options.ex new file mode 100644 index 0000000000..767998f9ae --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/hive_database_options.ex @@ -0,0 +1,49 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.HiveDatabaseOptions do + @moduledoc """ + Options of a Hive database. + + ## Attributes + + * `locationUri` (*type:* `String.t`, *default:* `nil`) - Cloud Storage folder URI where the database data is stored, starting with "gs://". + * `parameters` (*type:* `map()`, *default:* `nil`) - Stores user supplied Hive database parameters. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :locationUri => String.t() | nil, + :parameters => map() | nil + } + + field(:locationUri) + field(:parameters, type: :map) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.HiveDatabaseOptions do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.HiveDatabaseOptions.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.HiveDatabaseOptions do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/hive_table_options.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/hive_table_options.ex new file mode 100644 index 0000000000..ad1f1ce60e --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/hive_table_options.ex @@ -0,0 +1,52 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.HiveTableOptions do + @moduledoc """ + Options of a Hive table. + + ## Attributes + + * `parameters` (*type:* `map()`, *default:* `nil`) - Stores user supplied Hive table parameters. + * `storageDescriptor` (*type:* `GoogleApi.BigLake.V1.Model.StorageDescriptor.t`, *default:* `nil`) - Stores physical storage information of the data. + * `tableType` (*type:* `String.t`, *default:* `nil`) - Hive table type. For example, MANAGED_TABLE, EXTERNAL_TABLE. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :parameters => map() | nil, + :storageDescriptor => GoogleApi.BigLake.V1.Model.StorageDescriptor.t() | nil, + :tableType => String.t() | nil + } + + field(:parameters, type: :map) + field(:storageDescriptor, as: GoogleApi.BigLake.V1.Model.StorageDescriptor) + field(:tableType) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.HiveTableOptions do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.HiveTableOptions.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.HiveTableOptions do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/list_catalogs_response.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/list_catalogs_response.ex new file mode 100644 index 0000000000..94e89db6bd --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/list_catalogs_response.ex @@ -0,0 +1,49 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.ListCatalogsResponse do + @moduledoc """ + Response message for the ListCatalogs method. + + ## Attributes + + * `catalogs` (*type:* `list(GoogleApi.BigLake.V1.Model.Catalog.t)`, *default:* `nil`) - The catalogs from the specified project. + * `nextPageToken` (*type:* `String.t`, *default:* `nil`) - A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :catalogs => list(GoogleApi.BigLake.V1.Model.Catalog.t()) | nil, + :nextPageToken => String.t() | nil + } + + field(:catalogs, as: GoogleApi.BigLake.V1.Model.Catalog, type: :list) + field(:nextPageToken) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.ListCatalogsResponse do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.ListCatalogsResponse.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.ListCatalogsResponse do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/list_databases_response.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/list_databases_response.ex new file mode 100644 index 0000000000..7a32976098 --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/list_databases_response.ex @@ -0,0 +1,49 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.ListDatabasesResponse do + @moduledoc """ + Response message for the ListDatabases method. + + ## Attributes + + * `databases` (*type:* `list(GoogleApi.BigLake.V1.Model.Database.t)`, *default:* `nil`) - The databases from the specified catalog. + * `nextPageToken` (*type:* `String.t`, *default:* `nil`) - A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :databases => list(GoogleApi.BigLake.V1.Model.Database.t()) | nil, + :nextPageToken => String.t() | nil + } + + field(:databases, as: GoogleApi.BigLake.V1.Model.Database, type: :list) + field(:nextPageToken) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.ListDatabasesResponse do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.ListDatabasesResponse.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.ListDatabasesResponse do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/list_tables_response.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/list_tables_response.ex new file mode 100644 index 0000000000..d79dab4b3a --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/list_tables_response.ex @@ -0,0 +1,49 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.ListTablesResponse do + @moduledoc """ + Response message for the ListTables method. + + ## Attributes + + * `nextPageToken` (*type:* `String.t`, *default:* `nil`) - A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + * `tables` (*type:* `list(GoogleApi.BigLake.V1.Model.Table.t)`, *default:* `nil`) - The tables from the specified database. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :nextPageToken => String.t() | nil, + :tables => list(GoogleApi.BigLake.V1.Model.Table.t()) | nil + } + + field(:nextPageToken) + field(:tables, as: GoogleApi.BigLake.V1.Model.Table, type: :list) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.ListTablesResponse do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.ListTablesResponse.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.ListTablesResponse do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/rename_table_request.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/rename_table_request.ex new file mode 100644 index 0000000000..1a9964e939 --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/rename_table_request.ex @@ -0,0 +1,46 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.RenameTableRequest do + @moduledoc """ + Request message for the RenameTable method in MetastoreService + + ## Attributes + + * `newName` (*type:* `String.t`, *default:* `nil`) - Required. The new `name` for the specified table, must be in the same database. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :newName => String.t() | nil + } + + field(:newName) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.RenameTableRequest do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.RenameTableRequest.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.RenameTableRequest do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/ser_de_info.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/ser_de_info.ex new file mode 100644 index 0000000000..307f0027f6 --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/ser_de_info.ex @@ -0,0 +1,46 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.SerDeInfo do + @moduledoc """ + Serializer and deserializer information. + + ## Attributes + + * `serializationLib` (*type:* `String.t`, *default:* `nil`) - The fully qualified Java class name of the serialization library. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :serializationLib => String.t() | nil + } + + field(:serializationLib) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.SerDeInfo do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.SerDeInfo.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.SerDeInfo do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/storage_descriptor.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/storage_descriptor.ex new file mode 100644 index 0000000000..cce9ebb08a --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/storage_descriptor.ex @@ -0,0 +1,55 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.StorageDescriptor do + @moduledoc """ + Stores physical storage information of the data. + + ## Attributes + + * `inputFormat` (*type:* `String.t`, *default:* `nil`) - The fully qualified Java class name of the input format. + * `locationUri` (*type:* `String.t`, *default:* `nil`) - Cloud Storage folder URI where the table data is stored, starting with "gs://". + * `outputFormat` (*type:* `String.t`, *default:* `nil`) - The fully qualified Java class name of the output format. + * `serdeInfo` (*type:* `GoogleApi.BigLake.V1.Model.SerDeInfo.t`, *default:* `nil`) - Serializer and deserializer information. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :inputFormat => String.t() | nil, + :locationUri => String.t() | nil, + :outputFormat => String.t() | nil, + :serdeInfo => GoogleApi.BigLake.V1.Model.SerDeInfo.t() | nil + } + + field(:inputFormat) + field(:locationUri) + field(:outputFormat) + field(:serdeInfo, as: GoogleApi.BigLake.V1.Model.SerDeInfo) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.StorageDescriptor do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.StorageDescriptor.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.StorageDescriptor do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/lib/google_api/big_lake/v1/model/table.ex b/clients/big_lake/lib/google_api/big_lake/v1/model/table.ex new file mode 100644 index 0000000000..b67c8ed87e --- /dev/null +++ b/clients/big_lake/lib/google_api/big_lake/v1/model/table.ex @@ -0,0 +1,67 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.V1.Model.Table do + @moduledoc """ + Represents a table. + + ## Attributes + + * `createTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The creation time of the table. + * `deleteTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The deletion time of the table. Only set after the table is deleted. + * `etag` (*type:* `String.t`, *default:* `nil`) - The checksum of a table object computed by the server based on the value of other fields. It may be sent on update requests to ensure the client has an up-to-date value before proceeding. It is only checked for update table operations. + * `expireTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The time when this table is considered expired. Only set after the table is deleted. + * `hiveOptions` (*type:* `GoogleApi.BigLake.V1.Model.HiveTableOptions.t`, *default:* `nil`) - Options of a Hive table. + * `name` (*type:* `String.t`, *default:* `nil`) - Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id} + * `type` (*type:* `String.t`, *default:* `nil`) - The table type. + * `updateTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The last modification time of the table. + """ + + use GoogleApi.Gax.ModelBase + + @type t :: %__MODULE__{ + :createTime => DateTime.t() | nil, + :deleteTime => DateTime.t() | nil, + :etag => String.t() | nil, + :expireTime => DateTime.t() | nil, + :hiveOptions => GoogleApi.BigLake.V1.Model.HiveTableOptions.t() | nil, + :name => String.t() | nil, + :type => String.t() | nil, + :updateTime => DateTime.t() | nil + } + + field(:createTime, as: DateTime) + field(:deleteTime, as: DateTime) + field(:etag) + field(:expireTime, as: DateTime) + field(:hiveOptions, as: GoogleApi.BigLake.V1.Model.HiveTableOptions) + field(:name) + field(:type) + field(:updateTime, as: DateTime) +end + +defimpl Poison.Decoder, for: GoogleApi.BigLake.V1.Model.Table do + def decode(value, options) do + GoogleApi.BigLake.V1.Model.Table.decode(value, options) + end +end + +defimpl Poison.Encoder, for: GoogleApi.BigLake.V1.Model.Table do + def encode(value, options) do + GoogleApi.Gax.ModelBase.encode(value, options) + end +end diff --git a/clients/big_lake/mix.exs b/clients/big_lake/mix.exs new file mode 100644 index 0000000000..e112483932 --- /dev/null +++ b/clients/big_lake/mix.exs @@ -0,0 +1,66 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +defmodule GoogleApi.BigLake.Mixfile do + use Mix.Project + + @version "0.2.0" + + def project() do + [ + app: :google_api_big_lake, + version: @version, + elixir: "~> 1.6", + build_embedded: Mix.env == :prod, + start_permanent: Mix.env == :prod, + description: description(), + package: package(), + deps: deps(), + source_url: "https://github.com/googleapis/elixir-google-api/tree/master/clients/big_lake" + ] + end + + def application() do + [extra_applications: [:logger]] + end + + defp deps() do + [ + {:google_gax, "~> 0.4"}, + + {:ex_doc, "~> 0.16", only: :dev} + ] + end + + defp description() do + """ + BigLake API client library. The BigLake API provides access to BigLake Metastore, a serverless, fully managed, and highly available metastore for open-source data that can be used for querying Apache Iceberg tables in BigQuery. + """ + end + + defp package() do + [ + files: ["lib", "mix.exs", "README*", "LICENSE"], + maintainers: ["Jeff Ching", "Daniel Azuma"], + licenses: ["Apache 2.0"], + links: %{ + "GitHub" => "https://github.com/googleapis/elixir-google-api/tree/master/clients/big_lake", + "Homepage" => "https://cloud.google.com/bigquery/" + } + ] + end +end diff --git a/clients/big_lake/test/test_helper.exs b/clients/big_lake/test/test_helper.exs new file mode 100644 index 0000000000..82aa19d89f --- /dev/null +++ b/clients/big_lake/test/test_helper.exs @@ -0,0 +1,35 @@ +# Copyright 2019 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. + +# NOTE: This file is auto generated by the elixir code generator program. +# Do not edit this file manually. + +ExUnit.start() + +defmodule GoogleApi.BigLake.TestHelper do + + defmacro __using__(opts) do + quote do + use ExUnit.Case, unquote(opts) + import GoogleApi.BigLake.TestHelper + end + end + + def for_scope(scopes) when is_list(scopes), do: for_scope(Enum.join(scopes, " ")) + def for_scope(scope) do + {:ok, token} = Goth.Token.for_scope(scope) + token.token + end + +end