google-cloud-dlp 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcc81bb0a2b4753432c038d93307838dc545cdabdda2544beb78320d3922cbc3
4
- data.tar.gz: 2a15cabe4ab989bc69861b25b5032fc98bed56b7babc4995347451a7d2503471
3
+ metadata.gz: 559657b5842795388714a124ef772a8ed27dfa5ba29e83825e67ddc34c50f58e
4
+ data.tar.gz: 06dcee2a5d5074147f2d414454fe7e067d28db8f123c8b0b80c4e40398ad65b2
5
5
  SHA512:
6
- metadata.gz: 4a1eff0b603412e445ff882053ac8bda3770990d58e60e91ba0f42cfc882063aa91ca6eab8ff2f292c71b0b9c2b7d44d7133f6c242d672bc7d6c05d4abc469a4
7
- data.tar.gz: a064b60fa58be23da0d4b9ecb13db8bf186af68b1aee94f6a7cba4db6e0a4aea1e44e993d5f9df7663ab71d19a04167939c412bb78ff93df2787fddf85a60a39
6
+ metadata.gz: e7c7a8631d727a848f421e29597969a91417a9cd027bd6f8ef3933f38f995dc7af7b948c8e313f789ec8f663d6ad38f92a1a23be827c4471876d8e92b6bf06e9
7
+ data.tar.gz: f43f65d72a13dd210906412363127f2bbec6ea868a683760e615af16aae2a047a48c2ea25451438e3d1b1b64ca85db4dfb3c0da5886921057deaec226fc2ba8c
data/.yardopts CHANGED
@@ -7,3 +7,5 @@
7
7
  ./lib/**/*.rb
8
8
  -
9
9
  README.md
10
+ AUTHENTICATION.md
11
+ LICENSE
@@ -0,0 +1,199 @@
1
+ # Authentication
2
+
3
+ In general, the google-cloud-dlp 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
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.
14
+
15
+ ## Quickstart
16
+
17
+ 1. [Create a service account and credentials](#creating-a-service-account).
18
+ 2. Set the [environment variable](#environment-variables).
19
+
20
+ ```sh
21
+ export DLP_CREDENTIALS=/path/to/json`
22
+ ```
23
+
24
+ 3. Initialize the client.
25
+
26
+ ```ruby
27
+ require "google/cloud/dlp"
28
+
29
+ client = Google::Cloud::Dlp.new
30
+ ```
31
+
32
+ ## Project and Credential Lookup
33
+
34
+ The google-cloud-dlp library aims to make authentication
35
+ as simple as possible, and provides several mechanisms to configure your system
36
+ without providing **Project ID** and **Service Account Credentials** directly in
37
+ code.
38
+
39
+ **Project ID** is discovered in the following order:
40
+
41
+ 1. Specify project ID in method arguments
42
+ 2. Specify project ID in configuration
43
+ 3. Discover project ID in environment variables
44
+ 4. Discover GCE project ID
45
+ 5. Discover project ID in credentials JSON
46
+
47
+ **Credentials** are discovered in the following order:
48
+
49
+ 1. Specify credentials in method arguments
50
+ 2. Specify credentials in configuration
51
+ 3. Discover credentials path in environment variables
52
+ 4. Discover credentials JSON in environment variables
53
+ 5. Discover credentials file in the Cloud SDK's path
54
+ 6. Discover GCE credentials
55
+
56
+ ### Google Cloud Platform environments
57
+
58
+ While running on Google Cloud Platform environments such as Google Compute
59
+ Engine, Google App Engine and Google Kubernetes Engine, no extra work is needed.
60
+ The **Project ID** and **Credentials** and are discovered automatically. Code
61
+ should be written as if already authenticated. Just be sure when you [set up the
62
+ GCE instance][gce-how-to], you add the correct scopes for the APIs you want to
63
+ access. For example:
64
+
65
+ * **All APIs**
66
+ * `https://www.googleapis.com/auth/cloud-platform`
67
+ * `https://www.googleapis.com/auth/cloud-platform.read-only`
68
+ * **BigQuery**
69
+ * `https://www.googleapis.com/auth/bigquery`
70
+ * `https://www.googleapis.com/auth/bigquery.insertdata`
71
+ * **Compute Engine**
72
+ * `https://www.googleapis.com/auth/compute`
73
+ * **Datastore**
74
+ * `https://www.googleapis.com/auth/datastore`
75
+ * `https://www.googleapis.com/auth/userinfo.email`
76
+ * **DNS**
77
+ * `https://www.googleapis.com/auth/ndev.clouddns.readwrite`
78
+ * **Pub/Sub**
79
+ * `https://www.googleapis.com/auth/pubsub`
80
+ * **Storage**
81
+ * `https://www.googleapis.com/auth/devstorage.full_control`
82
+ * `https://www.googleapis.com/auth/devstorage.read_only`
83
+ * `https://www.googleapis.com/auth/devstorage.read_write`
84
+
85
+ ### Environment Variables
86
+
87
+ The **Project ID** and **Credentials JSON** can be placed in environment
88
+ variables instead of declaring them directly in code. Each service has its own
89
+ environment variable, allowing for different service accounts to be used for
90
+ different services. (See the READMEs for the individual service gems for
91
+ details.) The path to the **Credentials JSON** file can be stored in the
92
+ environment variable, or the **Credentials JSON** itself can be stored for
93
+ environments such as Docker containers where writing files is difficult or not
94
+ encouraged.
95
+
96
+ The environment variables that google-cloud-dlp checks for project ID are:
97
+
98
+ 1. `DLP_PROJECT`
99
+ 2. `GOOGLE_CLOUD_PROJECT`
100
+
101
+ The environment variables that google-cloud-dlp checks for credentials are configured on {Google::Cloud::Dlp::V2::Credentials}:
102
+
103
+ 1. `DLP_CREDENTIALS` - Path to JSON file, or JSON contents
104
+ 2. `DLP_KEYFILE` - Path to JSON file, or JSON contents
105
+ 3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
106
+ 4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
107
+ 5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
108
+
109
+ ```ruby
110
+ require "google/cloud/dlp"
111
+
112
+ ENV["DLP_PROJECT"] = "my-project-id"
113
+ ENV["DLP_CREDENTIALS"] = "path/to/keyfile.json"
114
+
115
+ client = Google::Cloud::Dlp.new
116
+ ```
117
+
118
+ ### Configuration
119
+
120
+ The **Project ID** and **Credentials JSON** can be configured instead of placing them in environment variables or providing them as arguments.
121
+
122
+ ```ruby
123
+ require "google/cloud/dlp"
124
+
125
+ Google::Cloud::Dlp.configure do |config|
126
+ config.project_id = "my-project-id"
127
+ config.credentials = "path/to/keyfile.json"
128
+ end
129
+
130
+ client = Google::Cloud::Dlp.new
131
+ ```
132
+
133
+ ### Cloud SDK
134
+
135
+ This option allows for an easy way to authenticate during development. If
136
+ credentials are not provided in code or in environment variables, then Cloud SDK
137
+ credentials are discovered.
138
+
139
+ To configure your system for this, simply:
140
+
141
+ 1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
142
+ 2. Authenticate using OAuth 2.0 `$ gcloud auth login`
143
+ 3. Write code as if already authenticated.
144
+
145
+ **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
146
+ *should* only be used during development.
147
+
148
+ [gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
149
+ [dev-console]: https://console.cloud.google.com/project
150
+
151
+ [enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
152
+
153
+ [create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
154
+ [create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
155
+ [reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
156
+
157
+ ## Creating a Service Account
158
+
159
+ Google Cloud requires a **Project ID** and **Service Account Credentials** to
160
+ connect to the APIs. You will use the **Project ID** and **JSON key file** to
161
+ connect to most services with google-cloud-dlp.
162
+
163
+ If you are not running this client within [Google Cloud Platform
164
+ environments](#google-cloud-platform-environments), you need a Google
165
+ Developers service account.
166
+
167
+ 1. Visit the [Google Developers Console][dev-console].
168
+ 1. Create a new project or click on an existing project.
169
+ 1. Activate the slide-out navigation tray and select **API Manager**. From
170
+ here, you will enable the APIs that your application requires.
171
+
172
+ ![Enable the APIs that your application requires][enable-apis]
173
+
174
+ *Note: You may need to enable billing in order to use these services.*
175
+
176
+ 1. Select **Credentials** from the side navigation.
177
+
178
+ You should see a screen like one of the following.
179
+
180
+ ![Create a new service account][create-new-service-account]
181
+
182
+ ![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
183
+
184
+ Find the "Add credentials" drop down and select "Service account" to be
185
+ guided through downloading a new JSON key file.
186
+
187
+ If you want to re-use an existing service account, you can easily generate a
188
+ new key file. Just select the account you wish to re-use, and click "Generate
189
+ new JSON key":
190
+
191
+ ![Re-use an existing service account][reuse-service-account]
192
+
193
+ The key file you download will be used by this library to authenticate API
194
+ requests and should be stored in a secure location.
195
+
196
+ ## Troubleshooting
197
+
198
+ If you're having trouble authenticating you can ask for help by following the
199
+ {file:TROUBLESHOOTING.md Troubleshooting Guide}.
@@ -91,6 +91,12 @@ module Google
91
91
  ].freeze
92
92
 
93
93
 
94
+ DLP_JOB_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
95
+ "projects/{project}/dlpJobs/{dlp_job}"
96
+ )
97
+
98
+ private_constant :DLP_JOB_PATH_TEMPLATE
99
+
94
100
  ORGANIZATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
95
101
  "organizations/{organization}"
96
102
  )
@@ -103,29 +109,17 @@ module Google
103
109
 
104
110
  private_constant :ORGANIZATION_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE
105
111
 
106
- PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
107
- "projects/{project}/deidentifyTemplates/{deidentify_template}"
108
- )
109
-
110
- private_constant :PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE
111
-
112
112
  ORGANIZATION_INSPECT_TEMPLATE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
113
113
  "organizations/{organization}/inspectTemplates/{inspect_template}"
114
114
  )
115
115
 
116
116
  private_constant :ORGANIZATION_INSPECT_TEMPLATE_PATH_TEMPLATE
117
117
 
118
- PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
119
- "projects/{project}/inspectTemplates/{inspect_template}"
120
- )
121
-
122
- private_constant :PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE
123
-
124
- PROJECT_JOB_TRIGGER_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
125
- "projects/{project}/jobTriggers/{job_trigger}"
118
+ ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
119
+ "organizations/{organization}/storedInfoTypes/{stored_info_type}"
126
120
  )
127
121
 
128
- private_constant :PROJECT_JOB_TRIGGER_PATH_TEMPLATE
122
+ private_constant :ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE
129
123
 
130
124
  PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
131
125
  "projects/{project}"
@@ -133,17 +127,23 @@ module Google
133
127
 
134
128
  private_constant :PROJECT_PATH_TEMPLATE
135
129
 
136
- DLP_JOB_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
137
- "projects/{project}/dlpJobs/{dlp_job}"
130
+ PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
131
+ "projects/{project}/deidentifyTemplates/{deidentify_template}"
138
132
  )
139
133
 
140
- private_constant :DLP_JOB_PATH_TEMPLATE
134
+ private_constant :PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE
141
135
 
142
- ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
143
- "organizations/{organization}/storedInfoTypes/{stored_info_type}"
136
+ PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
137
+ "projects/{project}/inspectTemplates/{inspect_template}"
144
138
  )
145
139
 
146
- private_constant :ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE
140
+ private_constant :PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE
141
+
142
+ PROJECT_JOB_TRIGGER_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
143
+ "projects/{project}/jobTriggers/{job_trigger}"
144
+ )
145
+
146
+ private_constant :PROJECT_JOB_TRIGGER_PATH_TEMPLATE
147
147
 
148
148
  PROJECT_STORED_INFO_TYPE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
149
149
  "projects/{project}/storedInfoTypes/{stored_info_type}"
@@ -151,6 +151,17 @@ module Google
151
151
 
152
152
  private_constant :PROJECT_STORED_INFO_TYPE_PATH_TEMPLATE
153
153
 
154
+ # Returns a fully-qualified dlp_job resource name string.
155
+ # @param project [String]
156
+ # @param dlp_job [String]
157
+ # @return [String]
158
+ def self.dlp_job_path project, dlp_job
159
+ DLP_JOB_PATH_TEMPLATE.render(
160
+ :"project" => project,
161
+ :"dlp_job" => dlp_job
162
+ )
163
+ end
164
+
154
165
  # Returns a fully-qualified organization resource name string.
155
166
  # @param organization [String]
156
167
  # @return [String]
@@ -171,17 +182,6 @@ module Google
171
182
  )
172
183
  end
173
184
 
174
- # Returns a fully-qualified project_deidentify_template resource name string.
175
- # @param project [String]
176
- # @param deidentify_template [String]
177
- # @return [String]
178
- def self.project_deidentify_template_path project, deidentify_template
179
- PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE.render(
180
- :"project" => project,
181
- :"deidentify_template" => deidentify_template
182
- )
183
- end
184
-
185
185
  # Returns a fully-qualified organization_inspect_template resource name string.
186
186
  # @param organization [String]
187
187
  # @param inspect_template [String]
@@ -193,56 +193,56 @@ module Google
193
193
  )
194
194
  end
195
195
 
196
- # Returns a fully-qualified project_inspect_template resource name string.
197
- # @param project [String]
198
- # @param inspect_template [String]
196
+ # Returns a fully-qualified organization_stored_info_type resource name string.
197
+ # @param organization [String]
198
+ # @param stored_info_type [String]
199
199
  # @return [String]
200
- def self.project_inspect_template_path project, inspect_template
201
- PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE.render(
202
- :"project" => project,
203
- :"inspect_template" => inspect_template
200
+ def self.organization_stored_info_type_path organization, stored_info_type
201
+ ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE.render(
202
+ :"organization" => organization,
203
+ :"stored_info_type" => stored_info_type
204
204
  )
205
205
  end
206
206
 
207
- # Returns a fully-qualified project_job_trigger resource name string.
207
+ # Returns a fully-qualified project resource name string.
208
208
  # @param project [String]
209
- # @param job_trigger [String]
210
209
  # @return [String]
211
- def self.project_job_trigger_path project, job_trigger
212
- PROJECT_JOB_TRIGGER_PATH_TEMPLATE.render(
213
- :"project" => project,
214
- :"job_trigger" => job_trigger
210
+ def self.project_path project
211
+ PROJECT_PATH_TEMPLATE.render(
212
+ :"project" => project
215
213
  )
216
214
  end
217
215
 
218
- # Returns a fully-qualified project resource name string.
216
+ # Returns a fully-qualified project_deidentify_template resource name string.
219
217
  # @param project [String]
218
+ # @param deidentify_template [String]
220
219
  # @return [String]
221
- def self.project_path project
222
- PROJECT_PATH_TEMPLATE.render(
223
- :"project" => project
220
+ def self.project_deidentify_template_path project, deidentify_template
221
+ PROJECT_DEIDENTIFY_TEMPLATE_PATH_TEMPLATE.render(
222
+ :"project" => project,
223
+ :"deidentify_template" => deidentify_template
224
224
  )
225
225
  end
226
226
 
227
- # Returns a fully-qualified dlp_job resource name string.
227
+ # Returns a fully-qualified project_inspect_template resource name string.
228
228
  # @param project [String]
229
- # @param dlp_job [String]
229
+ # @param inspect_template [String]
230
230
  # @return [String]
231
- def self.dlp_job_path project, dlp_job
232
- DLP_JOB_PATH_TEMPLATE.render(
231
+ def self.project_inspect_template_path project, inspect_template
232
+ PROJECT_INSPECT_TEMPLATE_PATH_TEMPLATE.render(
233
233
  :"project" => project,
234
- :"dlp_job" => dlp_job
234
+ :"inspect_template" => inspect_template
235
235
  )
236
236
  end
237
237
 
238
- # Returns a fully-qualified organization_stored_info_type resource name string.
239
- # @param organization [String]
240
- # @param stored_info_type [String]
238
+ # Returns a fully-qualified project_job_trigger resource name string.
239
+ # @param project [String]
240
+ # @param job_trigger [String]
241
241
  # @return [String]
242
- def self.organization_stored_info_type_path organization, stored_info_type
243
- ORGANIZATION_STORED_INFO_TYPE_PATH_TEMPLATE.render(
244
- :"organization" => organization,
245
- :"stored_info_type" => stored_info_type
242
+ def self.project_job_trigger_path project, job_trigger
243
+ PROJECT_JOB_TRIGGER_PATH_TEMPLATE.render(
244
+ :"project" => project,
245
+ :"job_trigger" => job_trigger
246
246
  )
247
247
  end
248
248
 
@@ -97,7 +97,8 @@ module Google
97
97
  # @!attribute [rw] type_url
98
98
  # @return [String]
99
99
  # A URL/resource name that uniquely identifies the type of the serialized
100
- # protocol buffer message. The last segment of the URL's path must represent
100
+ # protocol buffer message. This string must contain at least
101
+ # one "/" character. The last segment of the URL's path must represent
101
102
  # the fully qualified name of the type (as in
102
103
  # `path/google.protobuf.Duration`). The name should be in a canonical form
103
104
  # (e.g., leading "." is not accepted).
@@ -83,57 +83,49 @@ module Google
83
83
  # describe the updated values, the API ignores the values of all
84
84
  # fields not covered by the mask.
85
85
  #
86
- # If a repeated field is specified for an update operation, the existing
87
- # repeated values in the target resource will be overwritten by the new values.
88
- # Note that a repeated field is only allowed in the last position of a `paths`
89
- # string.
86
+ # If a repeated field is specified for an update operation, new values will
87
+ # be appended to the existing repeated field in the target resource. Note that
88
+ # a repeated field is only allowed in the last position of a `paths` string.
90
89
  #
91
90
  # If a sub-message is specified in the last position of the field mask for an
92
- # update operation, then the existing sub-message in the target resource is
93
- # overwritten. Given the target message:
91
+ # update operation, then new value will be merged into the existing sub-message
92
+ # in the target resource.
93
+ #
94
+ # For example, given the target message:
94
95
  #
95
96
  # f {
96
97
  # b {
97
- # d : 1
98
- # x : 2
98
+ # d: 1
99
+ # x: 2
99
100
  # }
100
- # c : 1
101
+ # c: [1]
101
102
  # }
102
103
  #
103
104
  # And an update message:
104
105
  #
105
106
  # f {
106
107
  # b {
107
- # d : 10
108
+ # d: 10
108
109
  # }
110
+ # c: [2]
109
111
  # }
110
112
  #
111
113
  # then if the field mask is:
112
114
  #
113
- # paths: "f.b"
115
+ # paths: ["f.b", "f.c"]
114
116
  #
115
117
  # then the result will be:
116
118
  #
117
119
  # f {
118
120
  # b {
119
- # d : 10
121
+ # d: 10
122
+ # x: 2
120
123
  # }
121
- # c : 1
124
+ # c: [1, 2]
122
125
  # }
123
126
  #
124
- # However, if the update mask was:
125
- #
126
- # paths: "f.b.d"
127
- #
128
- # then the result would be:
129
- #
130
- # f {
131
- # b {
132
- # d : 10
133
- # x : 2
134
- # }
135
- # c : 1
136
- # }
127
+ # An implementation may provide options to override this default behavior for
128
+ # repeated and message fields.
137
129
  #
138
130
  # In order to reset a field's value to the default, the field must
139
131
  # be in the mask and set to the default value in the provided resource.
@@ -15,17 +15,19 @@
15
15
 
16
16
  module Google
17
17
  module Protobuf
18
- # A Timestamp represents a point in time independent of any time zone
19
- # or calendar, represented as seconds and fractions of seconds at
20
- # nanosecond resolution in UTC Epoch time. It is encoded using the
21
- # Proleptic Gregorian Calendar which extends the Gregorian calendar
22
- # backwards to year one. It is encoded assuming all minutes are 60
23
- # seconds long, i.e. leap seconds are "smeared" so that no leap second
24
- # table is needed for interpretation. Range is from
25
- # 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
26
- # By restricting to that range, we ensure that we can convert to
27
- # and from RFC 3339 date strings.
28
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
18
+ # A Timestamp represents a point in time independent of any time zone or local
19
+ # calendar, encoded as a count of seconds and fractions of seconds at
20
+ # nanosecond resolution. The count is relative to an epoch at UTC midnight on
21
+ # January 1, 1970, in the proleptic Gregorian calendar which extends the
22
+ # Gregorian calendar backwards to year one.
23
+ #
24
+ # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
25
+ # second table is needed for interpretation, using a [24-hour linear
26
+ # smear](https://developers.google.com/time/smear).
27
+ #
28
+ # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
29
+ # restricting to that range, we ensure that we can convert to and from [RFC
30
+ # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
29
31
  #
30
32
  # = Examples
31
33
  #
@@ -86,12 +88,12 @@ module Google
86
88
  # 01:30 UTC on January 15, 2017.
87
89
  #
88
90
  # In JavaScript, one can convert a Date object to this format using the
89
- # standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
91
+ # standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
90
92
  # method. In Python, a standard `datetime.datetime` object can be converted
91
93
  # to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
92
94
  # with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
93
95
  # can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
94
- # http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
96
+ # http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
95
97
  # ) to obtain a formatter capable of generating timestamps in this format.
96
98
  # @!attribute [rw] seconds
97
99
  # @return [Integer]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-dlp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-09 00:00:00.000000000 Z
11
+ date: 2019-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-gax
@@ -122,6 +122,7 @@ extensions: []
122
122
  extra_rdoc_files: []
123
123
  files:
124
124
  - ".yardopts"
125
+ - AUTHENTICATION.md
125
126
  - LICENSE
126
127
  - README.md
127
128
  - lib/google/cloud/dlp.rb