google-cloud-billing 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b3d83573839a601872fb1997608a55f68819a7c39debfe889c72b93355063a2
4
- data.tar.gz: b12f1bead8f7b75943e4b5e2a965c12bf352e83c31cc396809554eac83009175
3
+ metadata.gz: 03aa7a5ef2b73eff7ebd2fd412410f73a39dc6fab6ee7efe92b3d276878a4bca
4
+ data.tar.gz: 7bf6f327f8f009c03a920f86dd963f73f2d6f3708b61466ad2aefda84eb19fc0
5
5
  SHA512:
6
- metadata.gz: e8eb55c753286053036d64e55b138d8ec7dcc919ffdf715b0025f613e0afbe3a51fca40099264f11e69ca8fcf1e79bb681de47bfa3d921273fdeb2e38785e12c
7
- data.tar.gz: e14be566bef92b85c19e7a7e43d98076f8025a5d841d3f663645abbd2cdd25245ff2780fce5ee37f9fb39d1af4d3eee1a10b4445a2e20dcfafbde6e37b4b5f27
6
+ metadata.gz: dcc3fabd0837c7897100e53939cc46b30a41ce60f84bb87349267959cb5933962788d205b7374d6a245b10c141918288ef87f3db32f4dbc376f498feb04a0d4a
7
+ data.tar.gz: b6735bf67bcb27b84986be0eb86717faea72a17b2f88d5e03cae8ad88030a8705efb6dde44e9348582a0ecc690ae1fe33a89efe2af5b12d3b7c10cfe95d5d24d
data/.yardopts CHANGED
@@ -8,4 +8,4 @@
8
8
  -
9
9
  README.md
10
10
  AUTHENTICATION.md
11
- LICENSE
11
+ LICENSE.md
@@ -1,16 +1,17 @@
1
1
  # Authentication
2
2
 
3
- In general, the google-cloud-billing library uses [Service
4
- Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
5
- credentials to connect to Google Cloud services. When running within [Google
6
- Cloud Platform environments](#google-cloud-platform-environments)
7
- the credentials will be discovered automatically. When running on other
3
+ In general, the google-cloud-billing library uses
4
+ [Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
5
+ credentials to connect to Google Cloud services. When running within
6
+ [Google Cloud Platform environments](#google-cloud-platform-environments) the
7
+ credentials will be discovered automatically. When running on other
8
8
  environments, the Service Account credentials can be specified by providing the
9
- path to the [JSON
10
- keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
11
- the account (or the JSON itself) in [environment
12
- variables](#environment-variables). Additionally, Cloud SDK credentials can also
13
- be discovered automatically, but this is only recommended during development.
9
+ path to the
10
+ [JSON keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys)
11
+ for the account (or the JSON itself) in
12
+ [environment variables](#environment-variables). Additionally, Cloud SDK
13
+ credentials can also be discovered automatically, but this is only recommended
14
+ during development.
14
15
 
15
16
  ## Quickstart
16
17
 
@@ -33,8 +34,7 @@ client = Google::Cloud::Billing.cloud_billing_service
33
34
 
34
35
  The google-cloud-billing library aims to make authentication
35
36
  as simple as possible, and provides several mechanisms to configure your system
36
- without providing **Service Account Credentials** directly in
37
- code.
37
+ without requiring **Service Account Credentials** directly in code.
38
38
 
39
39
  **Credentials** are discovered in the following order:
40
40
 
@@ -47,24 +47,24 @@ code.
47
47
 
48
48
  ### Google Cloud Platform environments
49
49
 
50
- When running on Google Cloud Platform (GCP), including Google Compute Engine (GCE),
51
- Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud Functions
52
- (GCF) and Cloud Run, the **Credentials** are discovered
53
- automatically. Code should be written as if already authenticated.
50
+ When running on Google Cloud Platform (GCP), including Google Compute Engine
51
+ (GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud
52
+ Functions (GCF) and Cloud Run, **Credentials** are discovered automatically.
53
+ Code should be written as if already authenticated.
54
54
 
55
55
  ### Environment Variables
56
56
 
57
- The **Credentials JSON** can be placed in environment
58
- variables instead of declaring them directly in code. Each service has its own
59
- environment variable, allowing for different service accounts to be used for
60
- different services. (See the READMEs for the individual service gems for
61
- details.) The path to the **Credentials JSON** file can be stored in the
62
- environment variable, or the **Credentials JSON** itself can be stored for
63
- environments such as Docker containers where writing files is difficult or not
64
- encouraged.
57
+ The **Credentials JSON** can be placed in environment variables instead of
58
+ declaring them directly in code. Each service has its own environment variable,
59
+ allowing for different service accounts to be used for different services. (See
60
+ the READMEs for the individual service gems for details.) The path to the
61
+ **Credentials JSON** file can be stored in the environment variable, or the
62
+ **Credentials JSON** itself can be stored for environments such as Docker
63
+ containers where writing files is difficult or not encouraged.
65
64
 
66
- The environment variables that google-cloud-billing checks for credentials are
67
- configured on `Google::Cloud::Billing::V1::CloudBilling::Credentials`:
65
+ The environment variables that google-cloud-billing
66
+ checks for credentials are configured on the service Credentials class (such as
67
+ `::Google::Cloud::Billing::V1::CloudBilling::Credentials`):
68
68
 
69
69
  1. `BILLING_CREDENTIALS` - Path to JSON file, or JSON contents
70
70
  2. `BILLING_KEYFILE` - Path to JSON file, or JSON contents
@@ -135,9 +135,9 @@ Google Cloud requires **Service Account Credentials** to
135
135
  connect to the APIs. You will use the **JSON key file** to
136
136
  connect to most services with google-cloud-billing.
137
137
 
138
- If you are not running this client within [Google Cloud Platform
139
- environments](#google-cloud-platform-environments), you need a Google
140
- Developers service account.
138
+ If you are not running this client within
139
+ [Google Cloud Platform environments](#google-cloud-platform-environments), you
140
+ need a Google Developers service account.
141
141
 
142
142
  1. Visit the [Google Developers Console][dev-console].
143
143
  2. Create a new project or click on an existing project.
@@ -0,0 +1,203 @@
1
+ Apache License
2
+ ==============
3
+
4
+ * Version 2.0, January 2004
5
+ * https://www.apache.org/licenses/
6
+
7
+ ### TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
8
+
9
+ 1. **Definitions.**
10
+
11
+ "License" shall mean the terms and conditions for use, reproduction,
12
+ and distribution as defined by Sections 1 through 9 of this document.
13
+
14
+ "Licensor" shall mean the copyright owner or entity authorized by
15
+ the copyright owner that is granting the License.
16
+
17
+ "Legal Entity" shall mean the union of the acting entity and all
18
+ other entities that control, are controlled by, or are under common
19
+ control with that entity. For the purposes of this definition,
20
+ "control" means (i) the power, direct or indirect, to cause the
21
+ direction or management of such entity, whether by contract or
22
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
23
+ outstanding shares, or (iii) beneficial ownership of such entity.
24
+
25
+ "You" (or "Your") shall mean an individual or Legal Entity
26
+ exercising permissions granted by this License.
27
+
28
+ "Source" form shall mean the preferred form for making modifications,
29
+ including but not limited to software source code, documentation
30
+ source, and configuration files.
31
+
32
+ "Object" form shall mean any form resulting from mechanical
33
+ transformation or translation of a Source form, including but
34
+ not limited to compiled object code, generated documentation,
35
+ and conversions to other media types.
36
+
37
+ "Work" shall mean the work of authorship, whether in Source or
38
+ Object form, made available under the License, as indicated by a
39
+ copyright notice that is included in or attached to the work
40
+ (an example is provided in the Appendix below).
41
+
42
+ "Derivative Works" shall mean any work, whether in Source or Object
43
+ form, that is based on (or derived from) the Work and for which the
44
+ editorial revisions, annotations, elaborations, or other modifications
45
+ represent, as a whole, an original work of authorship. For the purposes
46
+ of this License, Derivative Works shall not include works that remain
47
+ separable from, or merely link (or bind by name) to the interfaces of,
48
+ the Work and Derivative Works thereof.
49
+
50
+ "Contribution" shall mean any work of authorship, including
51
+ the original version of the Work and any modifications or additions
52
+ to that Work or Derivative Works thereof, that is intentionally
53
+ submitted to Licensor for inclusion in the Work by the copyright owner
54
+ or by an individual or Legal Entity authorized to submit on behalf of
55
+ the copyright owner. For the purposes of this definition, "submitted"
56
+ means any form of electronic, verbal, or written communication sent
57
+ to the Licensor or its representatives, including but not limited to
58
+ communication on electronic mailing lists, source code control systems,
59
+ and issue tracking systems that are managed by, or on behalf of, the
60
+ Licensor for the purpose of discussing and improving the Work, but
61
+ excluding communication that is conspicuously marked or otherwise
62
+ designated in writing by the copyright owner as "Not a Contribution."
63
+
64
+ "Contributor" shall mean Licensor and any individual or Legal Entity
65
+ on behalf of whom a Contribution has been received by Licensor and
66
+ subsequently incorporated within the Work.
67
+
68
+ 2. **Grant of Copyright License.** Subject to the terms and conditions of
69
+ this License, each Contributor hereby grants to You a perpetual,
70
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
71
+ copyright license to reproduce, prepare Derivative Works of,
72
+ publicly display, publicly perform, sublicense, and distribute the
73
+ Work and such Derivative Works in Source or Object form.
74
+
75
+ 3. **Grant of Patent License.** Subject to the terms and conditions of
76
+ this License, each Contributor hereby grants to You a perpetual,
77
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
78
+ (except as stated in this section) patent license to make, have made,
79
+ use, offer to sell, sell, import, and otherwise transfer the Work,
80
+ where such license applies only to those patent claims licensable
81
+ by such Contributor that are necessarily infringed by their
82
+ Contribution(s) alone or by combination of their Contribution(s)
83
+ with the Work to which such Contribution(s) was submitted. If You
84
+ institute patent litigation against any entity (including a
85
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
86
+ or a Contribution incorporated within the Work constitutes direct
87
+ or contributory patent infringement, then any patent licenses
88
+ granted to You under this License for that Work shall terminate
89
+ as of the date such litigation is filed.
90
+
91
+ 4. **Redistribution.** You may reproduce and distribute copies of the
92
+ Work or Derivative Works thereof in any medium, with or without
93
+ modifications, and in Source or Object form, provided that You
94
+ meet the following conditions:
95
+
96
+ * **(a)** You must give any other recipients of the Work or
97
+ Derivative Works a copy of this License; and
98
+
99
+ * **(b)** You must cause any modified files to carry prominent notices
100
+ stating that You changed the files; and
101
+
102
+ * **(c)** You must retain, in the Source form of any Derivative Works
103
+ that You distribute, all copyright, patent, trademark, and
104
+ attribution notices from the Source form of the Work,
105
+ excluding those notices that do not pertain to any part of
106
+ the Derivative Works; and
107
+
108
+ * **(d)** If the Work includes a "NOTICE" text file as part of its
109
+ distribution, then any Derivative Works that You distribute must
110
+ include a readable copy of the attribution notices contained
111
+ within such NOTICE file, excluding those notices that do not
112
+ pertain to any part of the Derivative Works, in at least one
113
+ of the following places: within a NOTICE text file distributed
114
+ as part of the Derivative Works; within the Source form or
115
+ documentation, if provided along with the Derivative Works; or,
116
+ within a display generated by the Derivative Works, if and
117
+ wherever such third-party notices normally appear. The contents
118
+ of the NOTICE file are for informational purposes only and
119
+ do not modify the License. You may add Your own attribution
120
+ notices within Derivative Works that You distribute, alongside
121
+ or as an addendum to the NOTICE text from the Work, provided
122
+ that such additional attribution notices cannot be construed
123
+ as modifying the License.
124
+
125
+ You may add Your own copyright statement to Your modifications and
126
+ may provide additional or different license terms and conditions
127
+ for use, reproduction, or distribution of Your modifications, or
128
+ for any such Derivative Works as a whole, provided Your use,
129
+ reproduction, and distribution of the Work otherwise complies with
130
+ the conditions stated in this License.
131
+
132
+ 5. **Submission of Contributions.** Unless You explicitly state otherwise,
133
+ any Contribution intentionally submitted for inclusion in the Work
134
+ by You to the Licensor shall be under the terms and conditions of
135
+ this License, without any additional terms or conditions.
136
+ Notwithstanding the above, nothing herein shall supersede or modify
137
+ the terms of any separate license agreement you may have executed
138
+ with Licensor regarding such Contributions.
139
+
140
+ 6. **Trademarks.** This License does not grant permission to use the trade
141
+ names, trademarks, service marks, or product names of the Licensor,
142
+ except as required for reasonable and customary use in describing the
143
+ origin of the Work and reproducing the content of the NOTICE file.
144
+
145
+ 7. **Disclaimer of Warranty.** Unless required by applicable law or
146
+ agreed to in writing, Licensor provides the Work (and each
147
+ Contributor provides its Contributions) on an "AS IS" BASIS,
148
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
149
+ implied, including, without limitation, any warranties or conditions
150
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
151
+ PARTICULAR PURPOSE. You are solely responsible for determining the
152
+ appropriateness of using or redistributing the Work and assume any
153
+ risks associated with Your exercise of permissions under this License.
154
+
155
+ 8. **Limitation of Liability.** In no event and under no legal theory,
156
+ whether in tort (including negligence), contract, or otherwise,
157
+ unless required by applicable law (such as deliberate and grossly
158
+ negligent acts) or agreed to in writing, shall any Contributor be
159
+ liable to You for damages, including any direct, indirect, special,
160
+ incidental, or consequential damages of any character arising as a
161
+ result of this License or out of the use or inability to use the
162
+ Work (including but not limited to damages for loss of goodwill,
163
+ work stoppage, computer failure or malfunction, or any and all
164
+ other commercial damages or losses), even if such Contributor
165
+ has been advised of the possibility of such damages.
166
+
167
+ 9. **Accepting Warranty or Additional Liability.** While redistributing
168
+ the Work or Derivative Works thereof, You may choose to offer,
169
+ and charge a fee for, acceptance of support, warranty, indemnity,
170
+ or other liability obligations and/or rights consistent with this
171
+ License. However, in accepting such obligations, You may act only
172
+ on Your own behalf and on Your sole responsibility, not on behalf
173
+ of any other Contributor, and only if You agree to indemnify,
174
+ defend, and hold each Contributor harmless for any liability
175
+ incurred by, or claims asserted against, such Contributor by reason
176
+ of your accepting any such warranty or additional liability.
177
+
178
+ _END OF TERMS AND CONDITIONS_
179
+
180
+ ### APPENDIX: How to apply the Apache License to your work.
181
+
182
+ To apply the Apache License to your work, attach the following
183
+ boilerplate notice, with the fields enclosed by brackets "`[]`"
184
+ replaced with your own identifying information. (Don't include
185
+ the brackets!) The text should be enclosed in the appropriate
186
+ comment syntax for the file format. We also recommend that a
187
+ file or class name and description of purpose be included on the
188
+ same "printed page" as the copyright notice for easier
189
+ identification within third-party archives.
190
+
191
+ Copyright [yyyy] [name of copyright owner]
192
+
193
+ Licensed under the Apache License, Version 2.0 (the "License");
194
+ you may not use this file except in compliance with the License.
195
+ You may obtain a copy of the License at
196
+
197
+ https://www.apache.org/licenses/LICENSE-2.0
198
+
199
+ Unless required by applicable law or agreed to in writing, software
200
+ distributed under the License is distributed on an "AS IS" BASIS,
201
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202
+ See the License for the specific language governing permissions and
203
+ limitations under the License.
data/README.md CHANGED
@@ -1,42 +1,44 @@
1
- # Ruby Client for Billing API
1
+ # Ruby Client for the Billing API
2
+
3
+ API Client library for the Billing API
2
4
 
3
- [Billing API][Product Documentation]:
4
5
  Allows developers to manage billing for their Google Cloud Platform projects programmatically.
5
- - [Client Library Documentation][]
6
- - [Product Documentation][]
7
6
 
8
- ## Quick Start
9
- In order to use this library, you first need to go through the following
10
- steps:
7
+ Actual client classes for the various versions of this API are defined in
8
+ _versioned_ client gems, with names of the form `google-cloud-billing-v*`.
9
+ The gem `google-cloud-billing` is a convenience wrapper library that brings the
10
+ verisoned gems in as dependencies, and provides high-level methods for
11
+ constructing clients.
11
12
 
12
- 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
13
- 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
14
- 3. [Enable the Billing API.](https://console.cloud.google.com/apis/library/cloudbilling.googleapis.com)
15
- 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-secret_manager/latest/file.AUTHENTICATION.html)
13
+ View the [Client Library Documentation](https://googleapis.dev/ruby/google-cloud-billing/latest)
14
+ for this library, google-cloud-billing, to see the convenience methods for
15
+ constructing client objects. Reference documentation for the client objects
16
+ themselves can be found in the client library documentation for the versioned
17
+ client gems:
18
+ [google-cloud-billing-v1](https://googleapis.dev/ruby/google-cloud-billing-v1/latest).
19
+
20
+ See also the [Product Documentation](https://cloud.google.com/billing)
21
+ for more usage information.
22
+
23
+ ## Quick Start
16
24
 
17
- ### Installation
18
25
  ```
19
26
  $ gem install google-cloud-billing
20
27
  ```
21
28
 
22
- ### Next Steps
23
- - Read the [Client Library Documentation][] for the Billing API, and the underlying
24
- [V1 Client Documentation][] to see other available methods on the client.
25
- - Read the [Billing API Product documentation][Product Documentation]
26
- to learn more about the product and see How-to Guides.
27
- - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
28
- to see the full list of Cloud APIs that we cover.
29
+ In order to use this library, you first need to go through the following steps:
29
30
 
30
- [Client Library Documentation]: https://googleapis.dev/ruby/google-cloud-billing/latest
31
- [V1beta1 Client Documentation]: https://googleapis.dev/ruby/google-cloud-billing-v1/latest
32
- [Product Documentation]: https://cloud.google.com/billing
31
+ 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
32
+ 1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
33
+ 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudbilling.googleapis.com)
34
+ 1. {file:AUTHENTICATION.md Set up authentication.}
33
35
 
34
36
  ## Enabling Logging
35
37
 
36
38
  To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
37
- The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
39
+ The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html) as shown below,
38
40
  or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
39
- that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
41
+ that will write logs to [Cloud Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
40
42
  and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
41
43
 
42
44
  Configuring a Ruby stdlib logger:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright 2020 Google LLC
2
4
  #
3
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,24 +14,6 @@
12
14
  # See the License for the specific language governing permissions and
13
15
  # limitations under the License.
14
16
 
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
15
18
 
16
- ##
17
- # This file is here to be autorequired by bundler, but the library and all
18
- # dependencies won't be loaded until required and used.
19
-
20
-
21
- gem "google-cloud-core"
22
- require "google/cloud" unless defined? Google::Cloud.new
23
- require "google/cloud/config"
24
- require "googleauth"
25
-
26
- # Set the default configuration
27
- Google::Cloud.configure.add_config! :billing do |config|
28
- config.add_field! :credentials, nil, match: [String, Hash, Google::Auth::Credentials]
29
- config.add_field! :lib_name, nil, match: String
30
- config.add_field! :lib_version, nil, match: String
31
- config.add_field! :interceptors, nil, match: Array
32
- config.add_field! :timeout, nil, match: Numeric
33
- config.add_field! :metadata, nil, match: Hash
34
- config.add_field! :retry_policy, nil, match: [Hash, Proc]
35
- end
19
+ require "google/cloud/billing" unless defined? Google::Cloud::Billing::VERSION
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright 2020 Google LLC
2
4
  #
3
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,21 +14,53 @@
12
14
  # See the License for the specific language governing permissions and
13
15
  # limitations under the License.
14
16
 
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ # Require this file early so that the version constant gets defined before
20
+ # requiring "google/cloud". This is because google-cloud-core will load the
21
+ # entrypoint (gem name) file, which in turn re-requires this file (hence
22
+ # causing a require cycle) unless the version constant is already defined.
23
+ require "google/cloud/billing/version"
15
24
 
16
- require "google-cloud-billing"
25
+ require "googleauth"
26
+ gem "google-cloud-core"
27
+ require "google/cloud" unless defined? ::Google::Cloud.new
28
+ require "google/cloud/config"
29
+
30
+ # Set the default configuration
31
+ ::Google::Cloud.configure.add_config! :billing do |config|
32
+ config.add_field! :endpoint, "cloudbilling.googleapis.com", match: ::String
33
+ config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
34
+ config.add_field! :scope, nil, match: [::Array, ::String]
35
+ config.add_field! :lib_name, nil, match: ::String
36
+ config.add_field! :lib_version, nil, match: ::String
37
+ config.add_field! :interceptors, nil, match: ::Array
38
+ config.add_field! :timeout, nil, match: ::Numeric
39
+ config.add_field! :metadata, nil, match: ::Hash
40
+ config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
41
+ config.add_field! :quota_project, nil, match: ::String
42
+ end
17
43
 
18
44
  module Google
19
45
  module Cloud
20
- ##
21
- # Allows developers to manage billing for their Google Cloud Platform projects programmatically.
22
46
  module Billing
23
47
  ##
24
- # Create a new `CloudBilling::Client` object.
48
+ # Create a new client object for CloudBilling.
49
+ #
50
+ # By default, this returns an instance of
51
+ # [Google::Cloud::Billing::V1::CloudBilling::Client](https://googleapis.dev/ruby/google-cloud-billing-v1/latest/Google/Cloud/Billing/V1/CloudBilling/Client.html)
52
+ # for version V1 of the API.
53
+ # However, you can specify specify a different API version by passing it in the
54
+ # `version` parameter. If the CloudBilling service is
55
+ # supported by that API version, and the corresponding gem is available, the
56
+ # appropriate versioned client will be returned.
25
57
  #
26
- # @param version [String, Symbol] The API version to create the client instance. Optional. If not provided
27
- # defaults to `:v1`, which will return an instance of
28
- # [Google::Cloud::Billing::V1::CloudBilling::Client](https://googleapis.dev/ruby/google-cloud-billing-v1/latest/Google/Cloud/Billing/V1/CloudBilling/Client.html).
58
+ # ## About CloudBilling
29
59
  #
60
+ # Retrieves GCP Console billing accounts and associates them with projects.
61
+ #
62
+ # @param version [::String, ::Symbol] The API version to connect to. Optional.
63
+ # Defaults to `:v1`.
30
64
  # @return [CloudBilling::Client] A client object for the specified version.
31
65
  #
32
66
  def self.cloud_billing_service version: :v1, &block
@@ -41,12 +75,24 @@ module Google
41
75
  end
42
76
 
43
77
  ##
44
- # Create a new `CloudCatalog::Client` object.
78
+ # Create a new client object for CloudCatalog.
79
+ #
80
+ # By default, this returns an instance of
81
+ # [Google::Cloud::Billing::V1::CloudCatalog::Client](https://googleapis.dev/ruby/google-cloud-billing-v1/latest/Google/Cloud/Billing/V1/CloudCatalog/Client.html)
82
+ # for version V1 of the API.
83
+ # However, you can specify specify a different API version by passing it in the
84
+ # `version` parameter. If the CloudCatalog service is
85
+ # supported by that API version, and the corresponding gem is available, the
86
+ # appropriate versioned client will be returned.
45
87
  #
46
- # @param version [String, Symbol] The API version to create the client instance. Optional. If not provided
47
- # defaults to `:v1`, which will return an instance of
48
- # [Google::Cloud::Billing::V1::CloudCatalog::Client](https://googleapis.dev/ruby/google-cloud-billing-v1/latest/Google/Cloud/Billing/V1/CloudCatalog/Client.html).
88
+ # ## About CloudCatalog
49
89
  #
90
+ # A catalog of Google Cloud Platform services and SKUs.
91
+ # Provides pricing information and metadata on Google Cloud Platform services
92
+ # and SKUs.
93
+ #
94
+ # @param version [::String, ::Symbol] The API version to connect to. Optional.
95
+ # Defaults to `:v1`.
50
96
  # @return [CloudCatalog::Client] A client object for the specified version.
51
97
  #
52
98
  def self.cloud_catalog_service version: :v1, &block
@@ -61,26 +107,41 @@ module Google
61
107
  end
62
108
 
63
109
  ##
64
- # Configure the billing library.
110
+ # Configure the google-cloud-billing library.
65
111
  #
66
- # The following billing configuration parameters are supported:
112
+ # The following configuration parameters are supported:
67
113
  #
68
- # * `credentials` - (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of
69
- # the keyfile as a Hash, or a Google::Auth::Credentials object.
70
- # * `lib_name` (String)
71
- # * `lib_version` (String)
72
- # * `interceptors` (Array)
73
- # * `timeout` - (Integer) Default timeout to use in requests.
74
- # * `metadata` (Hash)
75
- # * `retry_policy` (Hash, Proc)
114
+ # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) -
115
+ # The path to the keyfile as a String, the contents of the keyfile as a
116
+ # Hash, or a Google::Auth::Credentials object.
117
+ # * `lib_name` (*type:* `String`) -
118
+ # The library name as recorded in instrumentation and logging.
119
+ # * `lib_version` (*type:* `String`) -
120
+ # The library version as recorded in instrumentation and logging.
121
+ # * `interceptors` (*type:* `Array<GRPC::ClientInterceptor>`) -
122
+ # An array of interceptors that are run before calls are executed.
123
+ # * `timeout` (*type:* `Integer`) -
124
+ # Default timeout in milliseconds.
125
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) -
126
+ # Additional gRPC headers to be sent with the call.
127
+ # * `retry_policy` (*type:* `Hash`) -
128
+ # The retry policy. The value is a hash with the following keys:
129
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
130
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
131
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
132
+ # * `:retry_codes` (*type:* `Array<String>`) -
133
+ # The error codes that should trigger a retry.
76
134
  #
77
- # @return [Google::Cloud::Config] The configuration object the Google::Cloud::Billing library uses.
135
+ # @return [::Google::Cloud::Config] The default configuration used by this library
78
136
  #
79
137
  def self.configure
80
- yield Google::Cloud.configure.billing if block_given?
138
+ yield ::Google::Cloud.configure.billing if block_given?
81
139
 
82
- Google::Cloud.configure.billing
140
+ ::Google::Cloud.configure.billing
83
141
  end
84
142
  end
85
143
  end
86
144
  end
145
+
146
+ helper_path = ::File.join __dir__, "billing", "helpers.rb"
147
+ require "google/cloud/billing/helpers" if ::File.file? helper_path
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Billing
19
- VERSION = "0.1.1".freeze
19
+ VERSION = "1.0.0".freeze
20
20
  end
21
21
  end
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-billing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-18 00:00:00.000000000 Z
11
+ date: 2020-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-billing-v1
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.0'
19
+ version: '0.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.0'
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: google-cloud-core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.5'
41
- - !ruby/object:Gem::Dependency
42
- name: autotest-suffix
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.1'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.1'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: google-style
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,56 +58,56 @@ dependencies:
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '5.10'
61
+ version: '5.14'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '5.10'
68
+ version: '5.14'
83
69
  - !ruby/object:Gem::Dependency
84
- name: minitest-autotest
70
+ name: minitest-focus
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '1.0'
75
+ version: '1.1'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '1.0'
82
+ version: '1.1'
97
83
  - !ruby/object:Gem::Dependency
98
- name: minitest-focus
84
+ name: minitest-rg
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '1.1'
89
+ version: '5.2'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '1.1'
96
+ version: '5.2'
111
97
  - !ruby/object:Gem::Dependency
112
- name: minitest-rg
98
+ name: rake
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - "~>"
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
- version: '5.2'
103
+ version: '12.0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - "~>"
108
+ - - ">="
123
109
  - !ruby/object:Gem::Version
124
- version: '5.2'
110
+ version: '12.0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: redcarpet
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +150,8 @@ dependencies:
164
150
  - - "~>"
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0.9'
167
- description: google-cloud-billing is the official library for Billing API.
153
+ description: Allows developers to manage billing for their Google Cloud Platform projects
154
+ programmatically.
168
155
  email: googleapis-packages@google.com
169
156
  executables: []
170
157
  extensions: []
@@ -172,12 +159,12 @@ extra_rdoc_files: []
172
159
  files:
173
160
  - ".yardopts"
174
161
  - AUTHENTICATION.md
175
- - LICENSE
162
+ - LICENSE.md
176
163
  - README.md
177
164
  - lib/google-cloud-billing.rb
178
165
  - lib/google/cloud/billing.rb
179
166
  - lib/google/cloud/billing/version.rb
180
- homepage: https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-billing
167
+ homepage: https://github.com/googleapis/google-cloud-ruby
181
168
  licenses:
182
169
  - Apache-2.0
183
170
  metadata: {}
@@ -196,8 +183,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
183
  - !ruby/object:Gem::Version
197
184
  version: '0'
198
185
  requirements: []
199
- rubygems_version: 3.0.6
186
+ rubygems_version: 3.1.3
200
187
  signing_key:
201
188
  specification_version: 4
202
- summary: API Client library for Billing API
189
+ summary: API Client library for the Billing API
203
190
  test_files: []
data/LICENSE DELETED
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- https://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright [yyyy] [name of copyright owner]
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- https://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.