google-cloud-recommender-v1 0.8.4 → 0.9.0

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: ccbc6eb90c4dbaceb1a34310e189ad968213ba4399dab10d2b3a04483b74ae21
4
- data.tar.gz: cc456df40e2987509f3b94134f425c8249864e7508bd23448cdae0d13357ee80
3
+ metadata.gz: b2f4ec20f58f080bc3edd58db464b84842d4b33a0cf5d231523c268ae1325c65
4
+ data.tar.gz: a0f058576ab4a146a15a811fe386a815123139d2f639ca6fbd465e8b138c6910
5
5
  SHA512:
6
- metadata.gz: e308c4383e767085449ae835fdd62faf15761e4221f1f82a7fd2327333f00727cb6b14275e01c0a95d0a4f4264c029added016fdbedd436d58f2dd5a1b2a573d
7
- data.tar.gz: 3873a0a480ff1d304ba0be2bd537b188b0ea0ff04769294c4da98cad9e847bb3efc79fd314975176833b603fa5e79b9851296d1b2337c0ca8bff764a9117826d
6
+ metadata.gz: c666188e0feb8cc7502bf7f58fc62da776643189a88e27cc78619eec2dc0b35e4e8ff704c71b2121920e931bb7db1427a0182153ad1d6b04337cfdc8cef6ab27
7
+ data.tar.gz: 5c2b8debf493cc0696c75ffe2a8dc0fcedd86cfded10c8bb883888e94b5ad0193a7e0708744fd7e40b5d73eef14b90c64ef3ec934f1209af43dc94fd691f3e9a
data/.yardopts CHANGED
@@ -1,5 +1,5 @@
1
1
  --no-private
2
- --title=Recommender V1 API
2
+ --title="Recommender V1 API"
3
3
  --exclude _pb\.rb$
4
4
  --markup markdown
5
5
  --markup-provider redcarpet
data/AUTHENTICATION.md CHANGED
@@ -120,15 +120,6 @@ To configure your system for this, simply:
120
120
  **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
121
121
  *should* only be used during development.
122
122
 
123
- [gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
124
- [dev-console]: https://console.cloud.google.com/project
125
-
126
- [enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
127
-
128
- [create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
129
- [create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
130
- [reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
131
-
132
123
  ## Creating a Service Account
133
124
 
134
125
  Google Cloud requires **Service Account Credentials** to
@@ -139,31 +130,22 @@ If you are not running this client within
139
130
  [Google Cloud Platform environments](#google-cloud-platform-environments), you
140
131
  need a Google Developers service account.
141
132
 
142
- 1. Visit the [Google Developers Console][dev-console].
133
+ 1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
143
134
  2. Create a new project or click on an existing project.
144
- 3. Activate the slide-out navigation tray and select **API Manager**. From
135
+ 3. Activate the menu in the upper left and select **APIs & Services**. From
145
136
  here, you will enable the APIs that your application requires.
146
137
 
147
- ![Enable the APIs that your application requires][enable-apis]
148
-
149
138
  *Note: You may need to enable billing in order to use these services.*
150
139
 
151
140
  4. Select **Credentials** from the side navigation.
152
141
 
153
- You should see a screen like one of the following.
154
-
155
- ![Create a new service account][create-new-service-account]
156
-
157
- ![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
158
-
159
- Find the "Add credentials" drop down and select "Service account" to be
160
- guided through downloading a new JSON key file.
142
+ Find the "Create credentials" drop down near the top of the page, and select
143
+ "Service account" to be guided through downloading a new JSON key file.
161
144
 
162
145
  If you want to re-use an existing service account, you can easily generate a
163
- new key file. Just select the account you wish to re-use, and click "Generate
164
- new JSON key":
165
-
166
- ![Re-use an existing service account][reuse-service-account]
146
+ new key file. Just select the account you wish to re-use, click the pencil
147
+ tool on the right side to edit the service account, select the **Keys** tab,
148
+ and then select **Add Key**.
167
149
 
168
150
  The key file you download will be used by this library to authenticate API
169
151
  requests and should be stored in a secure location.
data/README.md CHANGED
@@ -37,7 +37,7 @@ request = ::Google::Cloud::Recommender::V1::ListInsightsRequest.new # (request f
37
37
  response = client.list_insights request
38
38
  ```
39
39
 
40
- View the [Client Library Documentation](https://googleapis.dev/ruby/google-cloud-recommender-v1/latest)
40
+ View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-recommender-v1/latest)
41
41
  for class and method documentation.
42
42
 
43
43
  See also the [Product Documentation](https://cloud.google.com/recommender)
@@ -19,6 +19,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
19
19
  optional :observation_period, :message, 5, "google.protobuf.Duration"
20
20
  optional :state_info, :message, 6, "google.cloud.recommender.v1.InsightStateInfo"
21
21
  optional :category, :enum, 7, "google.cloud.recommender.v1.Insight.Category"
22
+ optional :severity, :enum, 15, "google.cloud.recommender.v1.Insight.Severity"
22
23
  optional :etag, :string, 11
23
24
  repeated :associated_recommendations, :message, 8, "google.cloud.recommender.v1.Insight.RecommendationReference"
24
25
  end
@@ -32,6 +33,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
32
33
  value :PERFORMANCE, 3
33
34
  value :MANAGEABILITY, 4
34
35
  end
36
+ add_enum "google.cloud.recommender.v1.Insight.Severity" do
37
+ value :SEVERITY_UNSPECIFIED, 0
38
+ value :LOW, 1
39
+ value :MEDIUM, 2
40
+ value :HIGH, 3
41
+ value :CRITICAL, 4
42
+ end
35
43
  add_message "google.cloud.recommender.v1.InsightStateInfo" do
36
44
  optional :state, :enum, 1, "google.cloud.recommender.v1.InsightStateInfo.State"
37
45
  map :state_metadata, :string, :string, 2
@@ -52,6 +60,7 @@ module Google
52
60
  Insight = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Insight").msgclass
53
61
  Insight::RecommendationReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Insight.RecommendationReference").msgclass
54
62
  Insight::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Insight.Category").enummodule
63
+ Insight::Severity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Insight.Severity").enummodule
55
64
  InsightStateInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.InsightStateInfo").msgclass
56
65
  InsightStateInfo::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.InsightStateInfo.State").enummodule
57
66
  end
@@ -17,16 +17,26 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
17
17
  optional :last_refresh_time, :message, 4, "google.protobuf.Timestamp"
18
18
  optional :primary_impact, :message, 5, "google.cloud.recommender.v1.Impact"
19
19
  repeated :additional_impact, :message, 6, "google.cloud.recommender.v1.Impact"
20
+ optional :priority, :enum, 17, "google.cloud.recommender.v1.Recommendation.Priority"
20
21
  optional :content, :message, 7, "google.cloud.recommender.v1.RecommendationContent"
21
22
  optional :state_info, :message, 10, "google.cloud.recommender.v1.RecommendationStateInfo"
22
23
  optional :etag, :string, 11
23
24
  repeated :associated_insights, :message, 14, "google.cloud.recommender.v1.Recommendation.InsightReference"
25
+ optional :xor_group_id, :string, 18
24
26
  end
25
27
  add_message "google.cloud.recommender.v1.Recommendation.InsightReference" do
26
28
  optional :insight, :string, 1
27
29
  end
30
+ add_enum "google.cloud.recommender.v1.Recommendation.Priority" do
31
+ value :PRIORITY_UNSPECIFIED, 0
32
+ value :P4, 1
33
+ value :P3, 2
34
+ value :P2, 3
35
+ value :P1, 4
36
+ end
28
37
  add_message "google.cloud.recommender.v1.RecommendationContent" do
29
38
  repeated :operation_groups, :message, 2, "google.cloud.recommender.v1.OperationGroup"
39
+ optional :overview, :message, 3, "google.protobuf.Struct"
30
40
  end
31
41
  add_message "google.cloud.recommender.v1.OperationGroup" do
32
42
  repeated :operations, :message, 1, "google.cloud.recommender.v1.Operation"
@@ -54,10 +64,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
54
64
  optional :cost, :message, 1, "google.type.Money"
55
65
  optional :duration, :message, 2, "google.protobuf.Duration"
56
66
  end
67
+ add_message "google.cloud.recommender.v1.SecurityProjection" do
68
+ optional :details, :message, 2, "google.protobuf.Struct"
69
+ end
57
70
  add_message "google.cloud.recommender.v1.Impact" do
58
71
  optional :category, :enum, 1, "google.cloud.recommender.v1.Impact.Category"
59
72
  oneof :projection do
60
73
  optional :cost_projection, :message, 100, "google.cloud.recommender.v1.CostProjection"
74
+ optional :security_projection, :message, 101, "google.cloud.recommender.v1.SecurityProjection"
61
75
  end
62
76
  end
63
77
  add_enum "google.cloud.recommender.v1.Impact.Category" do
@@ -88,11 +102,13 @@ module Google
88
102
  module V1
89
103
  Recommendation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Recommendation").msgclass
90
104
  Recommendation::InsightReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Recommendation.InsightReference").msgclass
105
+ Recommendation::Priority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Recommendation.Priority").enummodule
91
106
  RecommendationContent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationContent").msgclass
92
107
  OperationGroup = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.OperationGroup").msgclass
93
108
  Operation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Operation").msgclass
94
109
  ValueMatcher = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ValueMatcher").msgclass
95
110
  CostProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.CostProjection").msgclass
111
+ SecurityProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.SecurityProjection").msgclass
96
112
  Impact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact").msgclass
97
113
  Impact::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact.Category").enummodule
98
114
  RecommendationStateInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationStateInfo").msgclass
@@ -176,8 +176,8 @@ module Google
176
176
  # Service calls
177
177
 
178
178
  ##
179
- # Lists insights for a Cloud project. Requires the recommender.*.list IAM
180
- # permission for the specified insight type.
179
+ # Lists insights for the specified Cloud Resource. Requires the
180
+ # recommender.*.list IAM permission for the specified insight type.
181
181
  #
182
182
  # @overload list_insights(request, options = nil)
183
183
  # Pass arguments to `list_insights` via a request object, either of type
@@ -198,13 +198,20 @@ module Google
198
198
  # Required. The container resource on which to execute the request.
199
199
  # Acceptable formats:
200
200
  #
201
- # 1.
202
- # "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]",
201
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
202
+ #
203
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
204
+ #
205
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
206
+ #
207
+ # * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
208
+ #
209
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
203
210
  #
204
211
  # LOCATION here refers to GCP Locations:
205
212
  # https://cloud.google.com/about/locations/
206
213
  # INSIGHT_TYPE_ID refers to supported insight types:
207
- # https://cloud.google.com/recommender/docs/insights/insight-types.)
214
+ # https://cloud.google.com/recommender/docs/insights/insight-types.
208
215
  # @param page_size [::Integer]
209
216
  # Optional. The maximum number of results to return from this request. Non-positive
210
217
  # values are ignored. If not specified, the server will determine the number
@@ -216,8 +223,26 @@ module Google
216
223
  # to those in the previous call.
217
224
  # @param filter [::String]
218
225
  # Optional. Filter expression to restrict the insights returned. Supported
219
- # filter fields: state
220
- # Eg: `state:"DISMISSED" or state:"ACTIVE"
226
+ # filter fields:
227
+ #
228
+ # * `stateInfo.state`
229
+ #
230
+ # * `insightSubtype`
231
+ #
232
+ # * `severity`
233
+ #
234
+ # Examples:
235
+ #
236
+ # * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED`
237
+ #
238
+ # * `insightSubtype = PERMISSIONS_USAGE`
239
+ #
240
+ # * `severity = CRITICAL OR severity = HIGH`
241
+ #
242
+ # * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)`
243
+ #
244
+ # (These expressions are based on the filter language described at
245
+ # https://google.aip.dev/160)
221
246
  #
222
247
  # @yield [response, operation] Access the result along with the RPC operation
223
248
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Recommender::V1::Insight>]
@@ -227,6 +252,27 @@ module Google
227
252
  #
228
253
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
229
254
  #
255
+ # @example Basic example
256
+ # require "google/cloud/recommender/v1"
257
+ #
258
+ # # Create a client object. The client can be reused for multiple calls.
259
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
260
+ #
261
+ # # Create a request. To set request fields, pass in keyword arguments.
262
+ # request = Google::Cloud::Recommender::V1::ListInsightsRequest.new
263
+ #
264
+ # # Call the list_insights method.
265
+ # result = client.list_insights request
266
+ #
267
+ # # The returned object is of type Gapic::PagedEnumerable. You can
268
+ # # iterate over all elements by calling #each, and the enumerable
269
+ # # will lazily make API calls to fetch subsequent pages. Other
270
+ # # methods are also available for managing paging directly.
271
+ # result.each do |response|
272
+ # # Each element is of type ::Google::Cloud::Recommender::V1::Insight.
273
+ # p response
274
+ # end
275
+ #
230
276
  def list_insights request, options = nil
231
277
  raise ::ArgumentError, "request must be provided" if request.nil?
232
278
 
@@ -299,6 +345,21 @@ module Google
299
345
  #
300
346
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
301
347
  #
348
+ # @example Basic example
349
+ # require "google/cloud/recommender/v1"
350
+ #
351
+ # # Create a client object. The client can be reused for multiple calls.
352
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
353
+ #
354
+ # # Create a request. To set request fields, pass in keyword arguments.
355
+ # request = Google::Cloud::Recommender::V1::GetInsightRequest.new
356
+ #
357
+ # # Call the get_insight method.
358
+ # result = client.get_insight request
359
+ #
360
+ # # The returned object is of type Google::Cloud::Recommender::V1::Insight.
361
+ # p result
362
+ #
302
363
  def get_insight request, options = nil
303
364
  raise ::ArgumentError, "request must be provided" if request.nil?
304
365
 
@@ -379,6 +440,21 @@ module Google
379
440
  #
380
441
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
381
442
  #
443
+ # @example Basic example
444
+ # require "google/cloud/recommender/v1"
445
+ #
446
+ # # Create a client object. The client can be reused for multiple calls.
447
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
448
+ #
449
+ # # Create a request. To set request fields, pass in keyword arguments.
450
+ # request = Google::Cloud::Recommender::V1::MarkInsightAcceptedRequest.new
451
+ #
452
+ # # Call the mark_insight_accepted method.
453
+ # result = client.mark_insight_accepted request
454
+ #
455
+ # # The returned object is of type Google::Cloud::Recommender::V1::Insight.
456
+ # p result
457
+ #
382
458
  def mark_insight_accepted request, options = nil
383
459
  raise ::ArgumentError, "request must be provided" if request.nil?
384
460
 
@@ -421,8 +497,8 @@ module Google
421
497
  end
422
498
 
423
499
  ##
424
- # Lists recommendations for a Cloud project. Requires the recommender.*.list
425
- # IAM permission for the specified recommender.
500
+ # Lists recommendations for the specified Cloud Resource. Requires the
501
+ # recommender.*.list IAM permission for the specified recommender.
426
502
  #
427
503
  # @overload list_recommendations(request, options = nil)
428
504
  # Pass arguments to `list_recommendations` via a request object, either of type
@@ -443,8 +519,15 @@ module Google
443
519
  # Required. The container resource on which to execute the request.
444
520
  # Acceptable formats:
445
521
  #
446
- # 1.
447
- # "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]",
522
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
523
+ #
524
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
525
+ #
526
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
527
+ #
528
+ # * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
529
+ #
530
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
448
531
  #
449
532
  # LOCATION here refers to GCP Locations:
450
533
  # https://cloud.google.com/about/locations/
@@ -461,8 +544,26 @@ module Google
461
544
  # to those in the previous call.
462
545
  # @param filter [::String]
463
546
  # Filter expression to restrict the recommendations returned. Supported
464
- # filter fields: state_info.state
465
- # Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED"
547
+ # filter fields:
548
+ #
549
+ # * `state_info.state`
550
+ #
551
+ # * `recommenderSubtype`
552
+ #
553
+ # * `priority`
554
+ #
555
+ # Examples:
556
+ #
557
+ # * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED`
558
+ #
559
+ # * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE`
560
+ #
561
+ # * `priority = P1 OR priority = P2`
562
+ #
563
+ # * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)`
564
+ #
565
+ # (These expressions are based on the filter language described at
566
+ # https://google.aip.dev/160)
466
567
  #
467
568
  # @yield [response, operation] Access the result along with the RPC operation
468
569
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Recommender::V1::Recommendation>]
@@ -472,6 +573,27 @@ module Google
472
573
  #
473
574
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
474
575
  #
576
+ # @example Basic example
577
+ # require "google/cloud/recommender/v1"
578
+ #
579
+ # # Create a client object. The client can be reused for multiple calls.
580
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
581
+ #
582
+ # # Create a request. To set request fields, pass in keyword arguments.
583
+ # request = Google::Cloud::Recommender::V1::ListRecommendationsRequest.new
584
+ #
585
+ # # Call the list_recommendations method.
586
+ # result = client.list_recommendations request
587
+ #
588
+ # # The returned object is of type Gapic::PagedEnumerable. You can
589
+ # # iterate over all elements by calling #each, and the enumerable
590
+ # # will lazily make API calls to fetch subsequent pages. Other
591
+ # # methods are also available for managing paging directly.
592
+ # result.each do |response|
593
+ # # Each element is of type ::Google::Cloud::Recommender::V1::Recommendation.
594
+ # p response
595
+ # end
596
+ #
475
597
  def list_recommendations request, options = nil
476
598
  raise ::ArgumentError, "request must be provided" if request.nil?
477
599
 
@@ -544,6 +666,21 @@ module Google
544
666
  #
545
667
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
546
668
  #
669
+ # @example Basic example
670
+ # require "google/cloud/recommender/v1"
671
+ #
672
+ # # Create a client object. The client can be reused for multiple calls.
673
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
674
+ #
675
+ # # Create a request. To set request fields, pass in keyword arguments.
676
+ # request = Google::Cloud::Recommender::V1::GetRecommendationRequest.new
677
+ #
678
+ # # Call the get_recommendation method.
679
+ # result = client.get_recommendation request
680
+ #
681
+ # # The returned object is of type Google::Cloud::Recommender::V1::Recommendation.
682
+ # p result
683
+ #
547
684
  def get_recommendation request, options = nil
548
685
  raise ::ArgumentError, "request must be provided" if request.nil?
549
686
 
@@ -630,6 +767,21 @@ module Google
630
767
  #
631
768
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
632
769
  #
770
+ # @example Basic example
771
+ # require "google/cloud/recommender/v1"
772
+ #
773
+ # # Create a client object. The client can be reused for multiple calls.
774
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
775
+ #
776
+ # # Create a request. To set request fields, pass in keyword arguments.
777
+ # request = Google::Cloud::Recommender::V1::MarkRecommendationClaimedRequest.new
778
+ #
779
+ # # Call the mark_recommendation_claimed method.
780
+ # result = client.mark_recommendation_claimed request
781
+ #
782
+ # # The returned object is of type Google::Cloud::Recommender::V1::Recommendation.
783
+ # p result
784
+ #
633
785
  def mark_recommendation_claimed request, options = nil
634
786
  raise ::ArgumentError, "request must be provided" if request.nil?
635
787
 
@@ -717,6 +869,21 @@ module Google
717
869
  #
718
870
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
719
871
  #
872
+ # @example Basic example
873
+ # require "google/cloud/recommender/v1"
874
+ #
875
+ # # Create a client object. The client can be reused for multiple calls.
876
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
877
+ #
878
+ # # Create a request. To set request fields, pass in keyword arguments.
879
+ # request = Google::Cloud::Recommender::V1::MarkRecommendationSucceededRequest.new
880
+ #
881
+ # # Call the mark_recommendation_succeeded method.
882
+ # result = client.mark_recommendation_succeeded request
883
+ #
884
+ # # The returned object is of type Google::Cloud::Recommender::V1::Recommendation.
885
+ # p result
886
+ #
720
887
  def mark_recommendation_succeeded request, options = nil
721
888
  raise ::ArgumentError, "request must be provided" if request.nil?
722
889
 
@@ -804,6 +971,21 @@ module Google
804
971
  #
805
972
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
806
973
  #
974
+ # @example Basic example
975
+ # require "google/cloud/recommender/v1"
976
+ #
977
+ # # Create a client object. The client can be reused for multiple calls.
978
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
979
+ #
980
+ # # Create a request. To set request fields, pass in keyword arguments.
981
+ # request = Google::Cloud::Recommender::V1::MarkRecommendationFailedRequest.new
982
+ #
983
+ # # Call the mark_recommendation_failed method.
984
+ # result = client.mark_recommendation_failed request
985
+ #
986
+ # # The returned object is of type Google::Cloud::Recommender::V1::Recommendation.
987
+ # p result
988
+ #
807
989
  def mark_recommendation_failed request, options = nil
808
990
  raise ::ArgumentError, "request must be provided" if request.nil?
809
991
 
@@ -36,8 +36,8 @@ module Google
36
36
  self.unmarshal_class_method = :decode
37
37
  self.service_name = 'google.cloud.recommender.v1.Recommender'
38
38
 
39
- # Lists insights for a Cloud project. Requires the recommender.*.list IAM
40
- # permission for the specified insight type.
39
+ # Lists insights for the specified Cloud Resource. Requires the
40
+ # recommender.*.list IAM permission for the specified insight type.
41
41
  rpc :ListInsights, ::Google::Cloud::Recommender::V1::ListInsightsRequest, ::Google::Cloud::Recommender::V1::ListInsightsResponse
42
42
  # Gets the requested insight. Requires the recommender.*.get IAM permission
43
43
  # for the specified insight type.
@@ -49,8 +49,8 @@ module Google
49
49
  # MarkInsightAccepted can be applied to insights in ACTIVE state. Requires
50
50
  # the recommender.*.update IAM permission for the specified insight.
51
51
  rpc :MarkInsightAccepted, ::Google::Cloud::Recommender::V1::MarkInsightAcceptedRequest, ::Google::Cloud::Recommender::V1::Insight
52
- # Lists recommendations for a Cloud project. Requires the recommender.*.list
53
- # IAM permission for the specified recommender.
52
+ # Lists recommendations for the specified Cloud Resource. Requires the
53
+ # recommender.*.list IAM permission for the specified recommender.
54
54
  rpc :ListRecommendations, ::Google::Cloud::Recommender::V1::ListRecommendationsRequest, ::Google::Cloud::Recommender::V1::ListRecommendationsResponse
55
55
  # Gets the requested recommendation. Requires the recommender.*.get
56
56
  # IAM permission for the specified recommender.
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Recommender
23
23
  module V1
24
- VERSION = "0.8.4"
24
+ VERSION = "0.9.0"
25
25
  end
26
26
  end
27
27
  end
@@ -25,6 +25,8 @@ module Google
25
25
  ##
26
26
  # To load this package, including all its services, and instantiate a client:
27
27
  #
28
+ # @example
29
+ #
28
30
  # require "google/cloud/recommender/v1"
29
31
  # client = ::Google::Cloud::Recommender::V1::Recommender::Client.new
30
32
  #
@@ -33,11 +33,7 @@ module Google
33
33
  # // For Kubernetes resources, the format is {api group}/{kind}.
34
34
  # option (google.api.resource) = {
35
35
  # type: "pubsub.googleapis.com/Topic"
36
- # name_descriptor: {
37
- # pattern: "projects/{project}/topics/{topic}"
38
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
39
- # parent_name_extractor: "projects/{project}"
40
- # }
36
+ # pattern: "projects/{project}/topics/{topic}"
41
37
  # };
42
38
  # }
43
39
  #
@@ -45,10 +41,7 @@ module Google
45
41
  #
46
42
  # resources:
47
43
  # - type: "pubsub.googleapis.com/Topic"
48
- # name_descriptor:
49
- # - pattern: "projects/{project}/topics/{topic}"
50
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
- # parent_name_extractor: "projects/{project}"
44
+ # pattern: "projects/{project}/topics/{topic}"
52
45
  #
53
46
  # Sometimes, resources have multiple patterns, typically because they can
54
47
  # live under multiple parents.
@@ -58,26 +51,10 @@ module Google
58
51
  # message LogEntry {
59
52
  # option (google.api.resource) = {
60
53
  # type: "logging.googleapis.com/LogEntry"
61
- # name_descriptor: {
62
- # pattern: "projects/{project}/logs/{log}"
63
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
64
- # parent_name_extractor: "projects/{project}"
65
- # }
66
- # name_descriptor: {
67
- # pattern: "folders/{folder}/logs/{log}"
68
- # parent_type: "cloudresourcemanager.googleapis.com/Folder"
69
- # parent_name_extractor: "folders/{folder}"
70
- # }
71
- # name_descriptor: {
72
- # pattern: "organizations/{organization}/logs/{log}"
73
- # parent_type: "cloudresourcemanager.googleapis.com/Organization"
74
- # parent_name_extractor: "organizations/{organization}"
75
- # }
76
- # name_descriptor: {
77
- # pattern: "billingAccounts/{billing_account}/logs/{log}"
78
- # parent_type: "billing.googleapis.com/BillingAccount"
79
- # parent_name_extractor: "billingAccounts/{billing_account}"
80
- # }
54
+ # pattern: "projects/{project}/logs/{log}"
55
+ # pattern: "folders/{folder}/logs/{log}"
56
+ # pattern: "organizations/{organization}/logs/{log}"
57
+ # pattern: "billingAccounts/{billing_account}/logs/{log}"
81
58
  # };
82
59
  # }
83
60
  #
@@ -85,48 +62,10 @@ module Google
85
62
  #
86
63
  # resources:
87
64
  # - type: 'logging.googleapis.com/LogEntry'
88
- # name_descriptor:
89
- # - pattern: "projects/{project}/logs/{log}"
90
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
91
- # parent_name_extractor: "projects/{project}"
92
- # - pattern: "folders/{folder}/logs/{log}"
93
- # parent_type: "cloudresourcemanager.googleapis.com/Folder"
94
- # parent_name_extractor: "folders/{folder}"
95
- # - pattern: "organizations/{organization}/logs/{log}"
96
- # parent_type: "cloudresourcemanager.googleapis.com/Organization"
97
- # parent_name_extractor: "organizations/{organization}"
98
- # - pattern: "billingAccounts/{billing_account}/logs/{log}"
99
- # parent_type: "billing.googleapis.com/BillingAccount"
100
- # parent_name_extractor: "billingAccounts/{billing_account}"
101
- #
102
- # For flexible resources, the resource name doesn't contain parent names, but
103
- # the resource itself has parents for policy evaluation.
104
- #
105
- # Example:
106
- #
107
- # message Shelf {
108
- # option (google.api.resource) = {
109
- # type: "library.googleapis.com/Shelf"
110
- # name_descriptor: {
111
- # pattern: "shelves/{shelf}"
112
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
113
- # }
114
- # name_descriptor: {
115
- # pattern: "shelves/{shelf}"
116
- # parent_type: "cloudresourcemanager.googleapis.com/Folder"
117
- # }
118
- # };
119
- # }
120
- #
121
- # The ResourceDescriptor Yaml config will look like:
122
- #
123
- # resources:
124
- # - type: 'library.googleapis.com/Shelf'
125
- # name_descriptor:
126
- # - pattern: "shelves/{shelf}"
127
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
128
- # - pattern: "shelves/{shelf}"
129
- # parent_type: "cloudresourcemanager.googleapis.com/Folder"
65
+ # pattern: "projects/{project}/logs/{log}"
66
+ # pattern: "folders/{folder}/logs/{log}"
67
+ # pattern: "organizations/{organization}/logs/{log}"
68
+ # pattern: "billingAccounts/{billing_account}/logs/{log}"
130
69
  # @!attribute [rw] type
131
70
  # @return [::String]
132
71
  # The resource type. It must be in the format of
@@ -54,6 +54,9 @@ module Google
54
54
  # @!attribute [rw] category
55
55
  # @return [::Google::Cloud::Recommender::V1::Insight::Category]
56
56
  # Category being targeted by the insight.
57
+ # @!attribute [rw] severity
58
+ # @return [::Google::Cloud::Recommender::V1::Insight::Severity]
59
+ # Insight's severity.
57
60
  # @!attribute [rw] etag
58
61
  # @return [::String]
59
62
  # Fingerprint of the Insight. Provides optimistic locking when updating
@@ -92,6 +95,24 @@ module Google
92
95
  # This insight is related to manageability.
93
96
  MANAGEABILITY = 4
94
97
  end
98
+
99
+ # Insight severity levels.
100
+ module Severity
101
+ # Insight has unspecified severity.
102
+ SEVERITY_UNSPECIFIED = 0
103
+
104
+ # Insight has low severity.
105
+ LOW = 1
106
+
107
+ # Insight has medium severity.
108
+ MEDIUM = 2
109
+
110
+ # Insight has high severity.
111
+ HIGH = 3
112
+
113
+ # Insight has critical severity.
114
+ CRITICAL = 4
115
+ end
95
116
  end
96
117
 
97
118
  # Information related to insight state.
@@ -54,6 +54,9 @@ module Google
54
54
  # Optional set of additional impact that this recommendation may have when
55
55
  # trying to optimize for the primary category. These may be positive
56
56
  # or negative.
57
+ # @!attribute [rw] priority
58
+ # @return [::Google::Cloud::Recommender::V1::Recommendation::Priority]
59
+ # Recommendation's priority.
57
60
  # @!attribute [rw] content
58
61
  # @return [::Google::Cloud::Recommender::V1::RecommendationContent]
59
62
  # Content of the recommendation describing recommended changes to resources.
@@ -67,6 +70,12 @@ module Google
67
70
  # @!attribute [rw] associated_insights
68
71
  # @return [::Array<::Google::Cloud::Recommender::V1::Recommendation::InsightReference>]
69
72
  # Insights that led to this recommendation.
73
+ # @!attribute [rw] xor_group_id
74
+ # @return [::String]
75
+ # Corresponds to a mutually exclusive group ID within a recommender.
76
+ # A non-empty ID indicates that the recommendation belongs to a mutually
77
+ # exclusive group. This means that only one recommendation within the group
78
+ # is suggested to be applied.
70
79
  class Recommendation
71
80
  include ::Google::Protobuf::MessageExts
72
81
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -80,6 +89,24 @@ module Google
80
89
  include ::Google::Protobuf::MessageExts
81
90
  extend ::Google::Protobuf::MessageExts::ClassMethods
82
91
  end
92
+
93
+ # Recommendation priority levels.
94
+ module Priority
95
+ # Recommendation has unspecified priority.
96
+ PRIORITY_UNSPECIFIED = 0
97
+
98
+ # Recommendation has P4 priority (lowest priority).
99
+ P4 = 1
100
+
101
+ # Recommendation has P3 priority (second lowest priority).
102
+ P3 = 2
103
+
104
+ # Recommendation has P2 priority (second highest priority).
105
+ P2 = 3
106
+
107
+ # Recommendation has P1 priority (highest priority).
108
+ P1 = 4
109
+ end
83
110
  end
84
111
 
85
112
  # Contains what resources are changing and how they are changing.
@@ -88,6 +115,9 @@ module Google
88
115
  # Operations to one or more Google Cloud resources grouped in such a way
89
116
  # that, all operations within one group are expected to be performed
90
117
  # atomically and in an order.
118
+ # @!attribute [rw] overview
119
+ # @return [::Google::Protobuf::Struct]
120
+ # Condensed overview information about the recommendation.
91
121
  class RecommendationContent
92
122
  include ::Google::Protobuf::MessageExts
93
123
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -114,7 +144,7 @@ module Google
114
144
  # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
115
145
  # @!attribute [rw] action
116
146
  # @return [::String]
117
- # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
147
+ # Type of this operation. Contains one of 'add', 'remove', 'replace', 'move',
118
148
  # 'copy', 'test' and custom operations. This field is case-insensitive and
119
149
  # always populated.
120
150
  # @!attribute [rw] resource_type
@@ -184,7 +214,7 @@ module Google
184
214
  # @!attribute [rw] path_value_matchers
185
215
  # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Recommender::V1::ValueMatcher}]
186
216
  # Similar to path_filters, this contains set of filters to apply if `path`
187
- # field referes to array elements. This is meant to support value matching
217
+ # field refers to array elements. This is meant to support value matching
188
218
  # beyond exact match. To perform exact match, use path_filters.
189
219
  # When both path_filters and path_value_matchers are set, an implicit AND
190
220
  # must be performed.
@@ -228,6 +258,9 @@ module Google
228
258
  # An approximate projection on amount saved or amount incurred. Negative cost
229
259
  # units indicate cost savings and positive cost units indicate increase.
230
260
  # See google.type.Money documentation for positive/negative units.
261
+ #
262
+ # A user's permissions may affect whether the cost is computed using list
263
+ # prices or custom contract prices.
231
264
  # @!attribute [rw] duration
232
265
  # @return [::Google::Protobuf::Duration]
233
266
  # Duration for which this cost applies.
@@ -236,6 +269,15 @@ module Google
236
269
  extend ::Google::Protobuf::MessageExts::ClassMethods
237
270
  end
238
271
 
272
+ # Contains various ways of describing the impact on Security.
273
+ # @!attribute [rw] details
274
+ # @return [::Google::Protobuf::Struct]
275
+ # Additional security impact details that is provided by the recommender.
276
+ class SecurityProjection
277
+ include ::Google::Protobuf::MessageExts
278
+ extend ::Google::Protobuf::MessageExts::ClassMethods
279
+ end
280
+
239
281
  # Contains the impact a recommendation can have for a given category.
240
282
  # @!attribute [rw] category
241
283
  # @return [::Google::Cloud::Recommender::V1::Impact::Category]
@@ -243,6 +285,9 @@ module Google
243
285
  # @!attribute [rw] cost_projection
244
286
  # @return [::Google::Cloud::Recommender::V1::CostProjection]
245
287
  # Use with CategoryType.COST
288
+ # @!attribute [rw] security_projection
289
+ # @return [::Google::Cloud::Recommender::V1::SecurityProjection]
290
+ # Use with CategoryType.SECURITY
246
291
  class Impact
247
292
  include ::Google::Protobuf::MessageExts
248
293
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -27,13 +27,20 @@ module Google
27
27
  # Required. The container resource on which to execute the request.
28
28
  # Acceptable formats:
29
29
  #
30
- # 1.
31
- # "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]",
30
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
31
+ #
32
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
33
+ #
34
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
35
+ #
36
+ # * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
37
+ #
38
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]`
32
39
  #
33
40
  # LOCATION here refers to GCP Locations:
34
41
  # https://cloud.google.com/about/locations/
35
42
  # INSIGHT_TYPE_ID refers to supported insight types:
36
- # https://cloud.google.com/recommender/docs/insights/insight-types.)
43
+ # https://cloud.google.com/recommender/docs/insights/insight-types.
37
44
  # @!attribute [rw] page_size
38
45
  # @return [::Integer]
39
46
  # Optional. The maximum number of results to return from this request. Non-positive
@@ -48,8 +55,26 @@ module Google
48
55
  # @!attribute [rw] filter
49
56
  # @return [::String]
50
57
  # Optional. Filter expression to restrict the insights returned. Supported
51
- # filter fields: state
52
- # Eg: `state:"DISMISSED" or state:"ACTIVE"
58
+ # filter fields:
59
+ #
60
+ # * `stateInfo.state`
61
+ #
62
+ # * `insightSubtype`
63
+ #
64
+ # * `severity`
65
+ #
66
+ # Examples:
67
+ #
68
+ # * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED`
69
+ #
70
+ # * `insightSubtype = PERMISSIONS_USAGE`
71
+ #
72
+ # * `severity = CRITICAL OR severity = HIGH`
73
+ #
74
+ # * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)`
75
+ #
76
+ # (These expressions are based on the filter language described at
77
+ # https://google.aip.dev/160)
53
78
  class ListInsightsRequest
54
79
  include ::Google::Protobuf::MessageExts
55
80
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -108,8 +133,15 @@ module Google
108
133
  # Required. The container resource on which to execute the request.
109
134
  # Acceptable formats:
110
135
  #
111
- # 1.
112
- # "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]",
136
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
137
+ #
138
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
139
+ #
140
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
141
+ #
142
+ # * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
143
+ #
144
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]`
113
145
  #
114
146
  # LOCATION here refers to GCP Locations:
115
147
  # https://cloud.google.com/about/locations/
@@ -129,8 +161,26 @@ module Google
129
161
  # @!attribute [rw] filter
130
162
  # @return [::String]
131
163
  # Filter expression to restrict the recommendations returned. Supported
132
- # filter fields: state_info.state
133
- # Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED"
164
+ # filter fields:
165
+ #
166
+ # * `state_info.state`
167
+ #
168
+ # * `recommenderSubtype`
169
+ #
170
+ # * `priority`
171
+ #
172
+ # Examples:
173
+ #
174
+ # * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED`
175
+ #
176
+ # * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE`
177
+ #
178
+ # * `priority = P1 OR priority = P2`
179
+ #
180
+ # * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)`
181
+ #
182
+ # (These expressions are based on the filter language described at
183
+ # https://google.aip.dev/160)
134
184
  class ListRecommendationsRequest
135
185
  include ::Google::Protobuf::MessageExts
136
186
  extend ::Google::Protobuf::MessageExts::ClassMethods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-recommender-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.9.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: 2021-11-02 00:00:00.000000000 Z
11
+ date: 2022-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  - !ruby/object:Gem::Version
210
210
  version: '0'
211
211
  requirements: []
212
- rubygems_version: 3.2.17
212
+ rubygems_version: 3.3.5
213
213
  signing_key:
214
214
  specification_version: 4
215
215
  summary: API Client library for the Recommender V1 API