google-cloud-recommender-v1 0.4.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,44 +24,312 @@ module Google
24
24
  module Recommender
25
25
  # Path helper methods for the Recommender API.
26
26
  module Paths
27
+ ##
28
+ # Create a fully-qualified Insight resource string.
29
+ #
30
+ # @overload insight_path(project:, location:, insight_type:, insight:)
31
+ # The resource will be in the following format:
32
+ #
33
+ # `projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}`
34
+ #
35
+ # @param project [String]
36
+ # @param location [String]
37
+ # @param insight_type [String]
38
+ # @param insight [String]
39
+ #
40
+ # @overload insight_path(billing_account:, location:, insight_type:, insight:)
41
+ # The resource will be in the following format:
42
+ #
43
+ # `billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}`
44
+ #
45
+ # @param billing_account [String]
46
+ # @param location [String]
47
+ # @param insight_type [String]
48
+ # @param insight [String]
49
+ #
50
+ # @overload insight_path(folder:, location:, insight_type:, insight:)
51
+ # The resource will be in the following format:
52
+ #
53
+ # `folders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}`
54
+ #
55
+ # @param folder [String]
56
+ # @param location [String]
57
+ # @param insight_type [String]
58
+ # @param insight [String]
59
+ #
60
+ # @overload insight_path(organization:, location:, insight_type:, insight:)
61
+ # The resource will be in the following format:
62
+ #
63
+ # `organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}`
64
+ #
65
+ # @param organization [String]
66
+ # @param location [String]
67
+ # @param insight_type [String]
68
+ # @param insight [String]
69
+ #
70
+ # @return [::String]
71
+ def insight_path **args
72
+ resources = {
73
+ "insight:insight_type:location:project" => (proc do |project:, location:, insight_type:, insight:|
74
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
75
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
76
+ raise ::ArgumentError, "insight_type cannot contain /" if insight_type.to_s.include? "/"
77
+
78
+ "projects/#{project}/locations/#{location}/insightTypes/#{insight_type}/insights/#{insight}"
79
+ end),
80
+ "billing_account:insight:insight_type:location" => (proc do |billing_account:, location:, insight_type:, insight:|
81
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
82
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
83
+ raise ::ArgumentError, "insight_type cannot contain /" if insight_type.to_s.include? "/"
84
+
85
+ "billingAccounts/#{billing_account}/locations/#{location}/insightTypes/#{insight_type}/insights/#{insight}"
86
+ end),
87
+ "folder:insight:insight_type:location" => (proc do |folder:, location:, insight_type:, insight:|
88
+ raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
89
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
90
+ raise ::ArgumentError, "insight_type cannot contain /" if insight_type.to_s.include? "/"
91
+
92
+ "folders/#{folder}/locations/#{location}/insightTypes/#{insight_type}/insights/#{insight}"
93
+ end),
94
+ "insight:insight_type:location:organization" => (proc do |organization:, location:, insight_type:, insight:|
95
+ raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
96
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
97
+ raise ::ArgumentError, "insight_type cannot contain /" if insight_type.to_s.include? "/"
98
+
99
+ "organizations/#{organization}/locations/#{location}/insightTypes/#{insight_type}/insights/#{insight}"
100
+ end)
101
+ }
102
+
103
+ resource = resources[args.keys.sort.join(":")]
104
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
105
+ resource.call(**args)
106
+ end
107
+
108
+ ##
109
+ # Create a fully-qualified InsightType resource string.
110
+ #
111
+ # @overload insight_type_path(project:, location:, insight_type:)
112
+ # The resource will be in the following format:
113
+ #
114
+ # `projects/{project}/locations/{location}/insightTypes/{insight_type}`
115
+ #
116
+ # @param project [String]
117
+ # @param location [String]
118
+ # @param insight_type [String]
119
+ #
120
+ # @overload insight_type_path(billing_account:, location:, insight_type:)
121
+ # The resource will be in the following format:
122
+ #
123
+ # `billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}`
124
+ #
125
+ # @param billing_account [String]
126
+ # @param location [String]
127
+ # @param insight_type [String]
128
+ #
129
+ # @overload insight_type_path(folder:, location:, insight_type:)
130
+ # The resource will be in the following format:
131
+ #
132
+ # `folders/{folder}/locations/{location}/insightTypes/{insight_type}`
133
+ #
134
+ # @param folder [String]
135
+ # @param location [String]
136
+ # @param insight_type [String]
137
+ #
138
+ # @overload insight_type_path(organization:, location:, insight_type:)
139
+ # The resource will be in the following format:
140
+ #
141
+ # `organizations/{organization}/locations/{location}/insightTypes/{insight_type}`
142
+ #
143
+ # @param organization [String]
144
+ # @param location [String]
145
+ # @param insight_type [String]
146
+ #
147
+ # @return [::String]
148
+ def insight_type_path **args
149
+ resources = {
150
+ "insight_type:location:project" => (proc do |project:, location:, insight_type:|
151
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
152
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
153
+
154
+ "projects/#{project}/locations/#{location}/insightTypes/#{insight_type}"
155
+ end),
156
+ "billing_account:insight_type:location" => (proc do |billing_account:, location:, insight_type:|
157
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
158
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
159
+
160
+ "billingAccounts/#{billing_account}/locations/#{location}/insightTypes/#{insight_type}"
161
+ end),
162
+ "folder:insight_type:location" => (proc do |folder:, location:, insight_type:|
163
+ raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
164
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
165
+
166
+ "folders/#{folder}/locations/#{location}/insightTypes/#{insight_type}"
167
+ end),
168
+ "insight_type:location:organization" => (proc do |organization:, location:, insight_type:|
169
+ raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
170
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
171
+
172
+ "organizations/#{organization}/locations/#{location}/insightTypes/#{insight_type}"
173
+ end)
174
+ }
175
+
176
+ resource = resources[args.keys.sort.join(":")]
177
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
178
+ resource.call(**args)
179
+ end
180
+
27
181
  ##
28
182
  # Create a fully-qualified Recommendation resource string.
29
183
  #
30
- # The resource will be in the following format:
184
+ # @overload recommendation_path(project:, location:, recommender:, recommendation:)
185
+ # The resource will be in the following format:
186
+ #
187
+ # `projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}`
188
+ #
189
+ # @param project [String]
190
+ # @param location [String]
191
+ # @param recommender [String]
192
+ # @param recommendation [String]
193
+ #
194
+ # @overload recommendation_path(billing_account:, location:, recommender:, recommendation:)
195
+ # The resource will be in the following format:
196
+ #
197
+ # `billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}`
198
+ #
199
+ # @param billing_account [String]
200
+ # @param location [String]
201
+ # @param recommender [String]
202
+ # @param recommendation [String]
203
+ #
204
+ # @overload recommendation_path(folder:, location:, recommender:, recommendation:)
205
+ # The resource will be in the following format:
206
+ #
207
+ # `folders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}`
208
+ #
209
+ # @param folder [String]
210
+ # @param location [String]
211
+ # @param recommender [String]
212
+ # @param recommendation [String]
213
+ #
214
+ # @overload recommendation_path(organization:, location:, recommender:, recommendation:)
215
+ # The resource will be in the following format:
31
216
  #
32
- # `projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}`
217
+ # `organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}`
33
218
  #
34
- # @param project [String]
35
- # @param location [String]
36
- # @param recommender [String]
37
- # @param recommendation [String]
219
+ # @param organization [String]
220
+ # @param location [String]
221
+ # @param recommender [String]
222
+ # @param recommendation [String]
38
223
  #
39
224
  # @return [::String]
40
- def recommendation_path project:, location:, recommender:, recommendation:
41
- raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
42
- raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
43
- raise ::ArgumentError, "recommender cannot contain /" if recommender.to_s.include? "/"
225
+ def recommendation_path **args
226
+ resources = {
227
+ "location:project:recommendation:recommender" => (proc do |project:, location:, recommender:, recommendation:|
228
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
229
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
230
+ raise ::ArgumentError, "recommender cannot contain /" if recommender.to_s.include? "/"
44
231
 
45
- "projects/#{project}/locations/#{location}/recommenders/#{recommender}/recommendations/#{recommendation}"
232
+ "projects/#{project}/locations/#{location}/recommenders/#{recommender}/recommendations/#{recommendation}"
233
+ end),
234
+ "billing_account:location:recommendation:recommender" => (proc do |billing_account:, location:, recommender:, recommendation:|
235
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
236
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
237
+ raise ::ArgumentError, "recommender cannot contain /" if recommender.to_s.include? "/"
238
+
239
+ "billingAccounts/#{billing_account}/locations/#{location}/recommenders/#{recommender}/recommendations/#{recommendation}"
240
+ end),
241
+ "folder:location:recommendation:recommender" => (proc do |folder:, location:, recommender:, recommendation:|
242
+ raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
243
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
244
+ raise ::ArgumentError, "recommender cannot contain /" if recommender.to_s.include? "/"
245
+
246
+ "folders/#{folder}/locations/#{location}/recommenders/#{recommender}/recommendations/#{recommendation}"
247
+ end),
248
+ "location:organization:recommendation:recommender" => (proc do |organization:, location:, recommender:, recommendation:|
249
+ raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
250
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
251
+ raise ::ArgumentError, "recommender cannot contain /" if recommender.to_s.include? "/"
252
+
253
+ "organizations/#{organization}/locations/#{location}/recommenders/#{recommender}/recommendations/#{recommendation}"
254
+ end)
255
+ }
256
+
257
+ resource = resources[args.keys.sort.join(":")]
258
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
259
+ resource.call(**args)
46
260
  end
47
261
 
48
262
  ##
49
263
  # Create a fully-qualified Recommender resource string.
50
264
  #
51
- # The resource will be in the following format:
265
+ # @overload recommender_path(project:, location:, recommender:)
266
+ # The resource will be in the following format:
267
+ #
268
+ # `projects/{project}/locations/{location}/recommenders/{recommender}`
269
+ #
270
+ # @param project [String]
271
+ # @param location [String]
272
+ # @param recommender [String]
273
+ #
274
+ # @overload recommender_path(billing_account:, location:, recommender:)
275
+ # The resource will be in the following format:
276
+ #
277
+ # `billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}`
278
+ #
279
+ # @param billing_account [String]
280
+ # @param location [String]
281
+ # @param recommender [String]
52
282
  #
53
- # `projects/{project}/locations/{location}/recommenders/{recommender}`
283
+ # @overload recommender_path(folder:, location:, recommender:)
284
+ # The resource will be in the following format:
54
285
  #
55
- # @param project [String]
56
- # @param location [String]
57
- # @param recommender [String]
286
+ # `folders/{folder}/locations/{location}/recommenders/{recommender}`
287
+ #
288
+ # @param folder [String]
289
+ # @param location [String]
290
+ # @param recommender [String]
291
+ #
292
+ # @overload recommender_path(organization:, location:, recommender:)
293
+ # The resource will be in the following format:
294
+ #
295
+ # `organizations/{organization}/locations/{location}/recommenders/{recommender}`
296
+ #
297
+ # @param organization [String]
298
+ # @param location [String]
299
+ # @param recommender [String]
58
300
  #
59
301
  # @return [::String]
60
- def recommender_path project:, location:, recommender:
61
- raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
62
- raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
302
+ def recommender_path **args
303
+ resources = {
304
+ "location:project:recommender" => (proc do |project:, location:, recommender:|
305
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
306
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
307
+
308
+ "projects/#{project}/locations/#{location}/recommenders/#{recommender}"
309
+ end),
310
+ "billing_account:location:recommender" => (proc do |billing_account:, location:, recommender:|
311
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
312
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
313
+
314
+ "billingAccounts/#{billing_account}/locations/#{location}/recommenders/#{recommender}"
315
+ end),
316
+ "folder:location:recommender" => (proc do |folder:, location:, recommender:|
317
+ raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
318
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
319
+
320
+ "folders/#{folder}/locations/#{location}/recommenders/#{recommender}"
321
+ end),
322
+ "location:organization:recommender" => (proc do |organization:, location:, recommender:|
323
+ raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
324
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
325
+
326
+ "organizations/#{organization}/locations/#{location}/recommenders/#{recommender}"
327
+ end)
328
+ }
63
329
 
64
- "projects/#{project}/locations/#{location}/recommenders/#{recommender}"
330
+ resource = resources[args.keys.sort.join(":")]
331
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
332
+ resource.call(**args)
65
333
  end
66
334
 
67
335
  extend self
@@ -7,9 +7,28 @@ require 'google/api/annotations_pb'
7
7
  require 'google/api/client_pb'
8
8
  require 'google/api/field_behavior_pb'
9
9
  require 'google/api/resource_pb'
10
+ require 'google/cloud/recommender/v1/insight_pb'
10
11
  require 'google/cloud/recommender/v1/recommendation_pb'
11
12
  Google::Protobuf::DescriptorPool.generated_pool.build do
12
13
  add_file("google/cloud/recommender/v1/recommender_service.proto", :syntax => :proto3) do
14
+ add_message "google.cloud.recommender.v1.ListInsightsRequest" do
15
+ optional :parent, :string, 1
16
+ optional :page_size, :int32, 2
17
+ optional :page_token, :string, 3
18
+ optional :filter, :string, 4
19
+ end
20
+ add_message "google.cloud.recommender.v1.ListInsightsResponse" do
21
+ repeated :insights, :message, 1, "google.cloud.recommender.v1.Insight"
22
+ optional :next_page_token, :string, 2
23
+ end
24
+ add_message "google.cloud.recommender.v1.GetInsightRequest" do
25
+ optional :name, :string, 1
26
+ end
27
+ add_message "google.cloud.recommender.v1.MarkInsightAcceptedRequest" do
28
+ optional :name, :string, 1
29
+ map :state_metadata, :string, :string, 2
30
+ optional :etag, :string, 3
31
+ end
13
32
  add_message "google.cloud.recommender.v1.ListRecommendationsRequest" do
14
33
  optional :parent, :string, 1
15
34
  optional :page_size, :int32, 2
@@ -45,6 +64,10 @@ module Google
45
64
  module Cloud
46
65
  module Recommender
47
66
  module V1
67
+ ListInsightsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListInsightsRequest").msgclass
68
+ ListInsightsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListInsightsResponse").msgclass
69
+ GetInsightRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.GetInsightRequest").msgclass
70
+ MarkInsightAcceptedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.MarkInsightAcceptedRequest").msgclass
48
71
  ListRecommendationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListRecommendationsRequest").msgclass
49
72
  ListRecommendationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListRecommendationsResponse").msgclass
50
73
  GetRecommendationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.GetRecommendationRequest").msgclass
@@ -1,7 +1,7 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/cloud/recommender/v1/recommender_service.proto for package 'google.cloud.recommender.v1'
3
3
  # Original file comments:
4
- # Copyright 2019 Google LLC.
4
+ # Copyright 2020 Google LLC
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
- #
19
18
 
20
19
  require 'grpc'
21
20
  require 'google/cloud/recommender/v1/recommender_service_pb'
@@ -25,10 +24,10 @@ module Google
25
24
  module Recommender
26
25
  module V1
27
26
  module Recommender
28
- # Provides recommendations for cloud customers for various categories like
29
- # performance optimization, cost savings, reliability, feature discovery, etc.
30
- # These recommendations are generated automatically based on analysis of user
31
- # resources, configuration and monitoring metrics.
27
+ # Provides insights and recommendations for cloud customers for various
28
+ # categories like performance optimization, cost savings, reliability, feature
29
+ # discovery, etc. Insights and recommendations are generated automatically
30
+ # based on analysis of user resources, configuration and monitoring metrics.
32
31
  class Service
33
32
 
34
33
  include GRPC::GenericService
@@ -37,45 +36,60 @@ module Google
37
36
  self.unmarshal_class_method = :decode
38
37
  self.service_name = 'google.cloud.recommender.v1.Recommender'
39
38
 
39
+ # Lists insights for a Cloud project. Requires the recommender.*.list IAM
40
+ # permission for the specified insight type.
41
+ rpc :ListInsights, ::Google::Cloud::Recommender::V1::ListInsightsRequest, ::Google::Cloud::Recommender::V1::ListInsightsResponse
42
+ # Gets the requested insight. Requires the recommender.*.get IAM permission
43
+ # for the specified insight type.
44
+ rpc :GetInsight, ::Google::Cloud::Recommender::V1::GetInsightRequest, ::Google::Cloud::Recommender::V1::Insight
45
+ # Marks the Insight State as Accepted. Users can use this method to
46
+ # indicate to the Recommender API that they have applied some action based
47
+ # on the insight. This stops the insight content from being updated.
48
+ #
49
+ # MarkInsightAccepted can be applied to insights in ACTIVE state. Requires
50
+ # the recommender.*.update IAM permission for the specified insight.
51
+ rpc :MarkInsightAccepted, ::Google::Cloud::Recommender::V1::MarkInsightAcceptedRequest, ::Google::Cloud::Recommender::V1::Insight
40
52
  # Lists recommendations for a Cloud project. Requires the recommender.*.list
41
53
  # IAM permission for the specified recommender.
42
- rpc :ListRecommendations, ListRecommendationsRequest, ListRecommendationsResponse
54
+ rpc :ListRecommendations, ::Google::Cloud::Recommender::V1::ListRecommendationsRequest, ::Google::Cloud::Recommender::V1::ListRecommendationsResponse
43
55
  # Gets the requested recommendation. Requires the recommender.*.get
44
56
  # IAM permission for the specified recommender.
45
- rpc :GetRecommendation, GetRecommendationRequest, Recommendation
46
- # Mark the Recommendation State as Claimed. Users can use this method to
57
+ rpc :GetRecommendation, ::Google::Cloud::Recommender::V1::GetRecommendationRequest, ::Google::Cloud::Recommender::V1::Recommendation
58
+ # Marks the Recommendation State as Claimed. Users can use this method to
47
59
  # indicate to the Recommender API that they are starting to apply the
48
60
  # recommendation themselves. This stops the recommendation content from being
49
- # updated.
61
+ # updated. Associated insights are frozen and placed in the ACCEPTED state.
50
62
  #
51
63
  # MarkRecommendationClaimed can be applied to recommendations in CLAIMED,
52
64
  # SUCCEEDED, FAILED, or ACTIVE state.
53
65
  #
54
66
  # Requires the recommender.*.update IAM permission for the specified
55
67
  # recommender.
56
- rpc :MarkRecommendationClaimed, MarkRecommendationClaimedRequest, Recommendation
57
- # Mark the Recommendation State as Succeeded. Users can use this method to
68
+ rpc :MarkRecommendationClaimed, ::Google::Cloud::Recommender::V1::MarkRecommendationClaimedRequest, ::Google::Cloud::Recommender::V1::Recommendation
69
+ # Marks the Recommendation State as Succeeded. Users can use this method to
58
70
  # indicate to the Recommender API that they have applied the recommendation
59
71
  # themselves, and the operation was successful. This stops the recommendation
60
- # content from being updated.
72
+ # content from being updated. Associated insights are frozen and placed in
73
+ # the ACCEPTED state.
61
74
  #
62
75
  # MarkRecommendationSucceeded can be applied to recommendations in ACTIVE,
63
76
  # CLAIMED, SUCCEEDED, or FAILED state.
64
77
  #
65
78
  # Requires the recommender.*.update IAM permission for the specified
66
79
  # recommender.
67
- rpc :MarkRecommendationSucceeded, MarkRecommendationSucceededRequest, Recommendation
68
- # Mark the Recommendation State as Failed. Users can use this method to
80
+ rpc :MarkRecommendationSucceeded, ::Google::Cloud::Recommender::V1::MarkRecommendationSucceededRequest, ::Google::Cloud::Recommender::V1::Recommendation
81
+ # Marks the Recommendation State as Failed. Users can use this method to
69
82
  # indicate to the Recommender API that they have applied the recommendation
70
83
  # themselves, and the operation failed. This stops the recommendation content
71
- # from being updated.
84
+ # from being updated. Associated insights are frozen and placed in the
85
+ # ACCEPTED state.
72
86
  #
73
87
  # MarkRecommendationFailed can be applied to recommendations in ACTIVE,
74
88
  # CLAIMED, SUCCEEDED, or FAILED state.
75
89
  #
76
90
  # Requires the recommender.*.update IAM permission for the specified
77
91
  # recommender.
78
- rpc :MarkRecommendationFailed, MarkRecommendationFailedRequest, Recommendation
92
+ rpc :MarkRecommendationFailed, ::Google::Cloud::Recommender::V1::MarkRecommendationFailedRequest, ::Google::Cloud::Recommender::V1::Recommendation
79
93
  end
80
94
 
81
95
  Stub = Service.rpc_stub_class