| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  | # Copyright 2015 Google Inc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License. | 
					
						
							|  |  |  | # You may obtain a copy of the License at | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #      http://www.apache.org/licenses/LICENSE-2.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and | 
					
						
							|  |  |  | # limitations under the License. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'date' | 
					
						
							|  |  |  | require 'google/apis/core/base_service' | 
					
						
							|  |  |  | require 'google/apis/core/json_representation' | 
					
						
							|  |  |  | require 'google/apis/core/hashable' | 
					
						
							|  |  |  | require 'google/apis/errors' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Google | 
					
						
							|  |  |  |   module Apis | 
					
						
							|  |  |  |     module RecommenderV1beta1 | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Contains metadata about how much money a recommendation can save or incur. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1CostProjection | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Represents an amount of money with its currency type. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `cost` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleTypeMoney] | 
					
						
							|  |  |  |         attr_accessor :cost | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Duration for which this cost applies. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `duration` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :duration | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @cost = args[:cost] if args.key?(:cost) | 
					
						
							|  |  |  |           @duration = args[:duration] if args.key?(:duration) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Contains the impact a recommendation can have for a given category. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1Impact | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Category that is being targeted. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `category` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :category | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Contains metadata about how much money a recommendation can save or incur. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `costProjection` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1CostProjection] | 
					
						
							|  |  |  |         attr_accessor :cost_projection | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @category = args[:category] if args.key?(:category) | 
					
						
							|  |  |  |           @cost_projection = args[:cost_projection] if args.key?(:cost_projection) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |       # An insight along with the information used to derive the insight. The insight | 
					
						
							|  |  |  |       # may have associated recomendations as well. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1Insight | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Recommendations derived from this insight. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `associatedRecommendations` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1InsightRecommendationReference>] | 
					
						
							|  |  |  |         attr_accessor :associated_recommendations | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Category being targeted by the insight. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `category` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :category | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # A struct of custom fields to explain the insight. Example: " | 
					
						
							|  |  |  |         # grantedPermissionsCount": "1000" | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `content` | 
					
						
							|  |  |  |         # @return [Hash<String,Object>] | 
					
						
							|  |  |  |         attr_accessor :content | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Free-form human readable summary in English. The maximum length is 500 | 
					
						
							|  |  |  |         # characters. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `description` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :description | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Fingerprint of the Insight. Provides optimistic locking when updating states. | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Insight subtype. Insight content schema will be stable for a given subtype. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `insightSubtype` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :insight_subtype | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Timestamp of the latest data used to generate the insight. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `lastRefreshTime` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :last_refresh_time | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Name of the insight. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `name` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :name | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Observation period that led to the insight. The source data used to generate | 
					
						
							|  |  |  |         # the insight ends at last_refresh_time and begins at (last_refresh_time - | 
					
						
							|  |  |  |         # observation_period). | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `observationPeriod` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :observation_period | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Information related to insight state. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `stateInfo` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1InsightStateInfo] | 
					
						
							|  |  |  |         attr_accessor :state_info | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Fully qualified resource names that this insight is targeting. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `targetResources` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :target_resources | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @associated_recommendations = args[:associated_recommendations] if args.key?(:associated_recommendations) | 
					
						
							|  |  |  |           @category = args[:category] if args.key?(:category) | 
					
						
							|  |  |  |           @content = args[:content] if args.key?(:content) | 
					
						
							|  |  |  |           @description = args[:description] if args.key?(:description) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @insight_subtype = args[:insight_subtype] if args.key?(:insight_subtype) | 
					
						
							|  |  |  |           @last_refresh_time = args[:last_refresh_time] if args.key?(:last_refresh_time) | 
					
						
							|  |  |  |           @name = args[:name] if args.key?(:name) | 
					
						
							|  |  |  |           @observation_period = args[:observation_period] if args.key?(:observation_period) | 
					
						
							|  |  |  |           @state_info = args[:state_info] if args.key?(:state_info) | 
					
						
							|  |  |  |           @target_resources = args[:target_resources] if args.key?(:target_resources) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Reference to an associated recommendation. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1InsightRecommendationReference | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Recommendation resource name, e.g. projects/[PROJECT_NUMBER]/locations/[ | 
					
						
							|  |  |  |         # LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `recommendation` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :recommendation | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @recommendation = args[:recommendation] if args.key?(:recommendation) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Information related to insight state. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1InsightStateInfo | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Insight state. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `state` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :state | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # A map of metadata for the state, provided by user or automations systems. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @state = args[:state] if args.key?(:state) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Response to the `ListInsights` method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1ListInsightsResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # The set of insights for the `parent` resource. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `insights` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1Insight>] | 
					
						
							|  |  |  |         attr_accessor :insights | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # A token that can be used to request the next page of results. This field is | 
					
						
							|  |  |  |         # empty if there are no additional results. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `nextPageToken` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :next_page_token | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @insights = args[:insights] if args.key?(:insights) | 
					
						
							|  |  |  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |       # Response to the `ListRecommendations` method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1ListRecommendationsResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # A token that can be used to request the next page of results. This field is | 
					
						
							|  |  |  |         # empty if there are no additional results. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `nextPageToken` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :next_page_token | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # The set of recommendations for the `parent` resource. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `recommendations` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1Recommendation>] | 
					
						
							|  |  |  |         attr_accessor :recommendations | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | 
					
						
							|  |  |  |           @recommendations = args[:recommendations] if args.key?(:recommendations) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |       # Request for the `MarkInsightAccepted` method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1MarkInsightAcceptedRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Required. Fingerprint of the Insight. Provides optimistic locking. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Optional. State properties user wish to include with this state. Full replace | 
					
						
							|  |  |  |         # of the current state_metadata. | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |       # Request for the `MarkRecommendationClaimed` Method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1MarkRecommendationClaimedRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-01-10 00:37:35 +00:00
										 |  |  |         # Required. Fingerprint of the Recommendation. Provides optimistic locking. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # State properties to include with this state. Overwrites any existing ` | 
					
						
							|  |  |  |         # state_metadata`. Keys must match the regex /^a-z0-9`0,62`$/. Values must match | 
					
						
							|  |  |  |         # the regex /^[a-zA-Z0-9_./-]`0,255`$/. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Request for the `MarkRecommendationFailed` Method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1MarkRecommendationFailedRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-04-13 16:49:10 +00:00
										 |  |  |         # Required. Fingerprint of the Recommendation. Provides optimistic locking. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # State properties to include with this state. Overwrites any existing ` | 
					
						
							|  |  |  |         # state_metadata`. Keys must match the regex /^a-z0-9`0,62`$/. Values must match | 
					
						
							|  |  |  |         # the regex /^[a-zA-Z0-9_./-]`0,255`$/. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Request for the `MarkRecommendationSucceeded` Method. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1MarkRecommendationSucceededRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-01-10 00:37:35 +00:00
										 |  |  |         # Required. Fingerprint of the Recommendation. Provides optimistic locking. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # State properties to include with this state. Overwrites any existing ` | 
					
						
							|  |  |  |         # state_metadata`. Keys must match the regex /^a-z0-9`0,62`$/. Values must match | 
					
						
							|  |  |  |         # the regex /^[a-zA-Z0-9_./-]`0,255`$/. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Contains an operation for a resource loosely based on the JSON-PATCH format | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |       # with support for: * Custom filters for describing partial array patch. * | 
					
						
							|  |  |  |       # Extended path values for describing nested arrays. * Custom fields for | 
					
						
							|  |  |  |       # describing the resource for which the operation is being described. * Allows | 
					
						
							|  |  |  |       # extension to custom operations not natively supported by RFC6902. See https:// | 
					
						
							|  |  |  |       # tools.ietf.org/html/rfc6902 for details on the original RFC. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |       class GoogleCloudRecommenderV1beta1Operation | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move', ' | 
					
						
							|  |  |  |         # copy', 'test' and 'custom' operations. This field is case-insensitive and | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # always populated. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `action` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :action | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Path to the target field being operated on. If the operation is at the | 
					
						
							|  |  |  |         # resource level, then path should be "/". This field is always populated. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `path` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :path | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Set of filters to apply if `path` refers to array elements or nested array | 
					
						
							|  |  |  |         # elements in order to narrow down to a single unique element that is being | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # tested/modified. This is intended to be an exact match per filter. To perform | 
					
						
							|  |  |  |         # advanced matching, use path_value_matchers. * Example: ` "/versions/*/name" : " | 
					
						
							|  |  |  |         # it-123" "/versions/*/targetSize/percent": 20 ` * Example: ` "/bindings/*/role": | 
					
						
							|  |  |  |         # "roles/admin" "/bindings/*/condition" : null ` * Example: ` "/bindings/*/role" | 
					
						
							|  |  |  |         # : "roles/admin" "/bindings/*/members/*" : ["x@google.com", "y@google.com"] ` | 
					
						
							|  |  |  |         # When both path_filters and path_value_matchers are set, an implicit AND must | 
					
						
							|  |  |  |         # be performed. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `pathFilters` | 
					
						
							|  |  |  |         # @return [Hash<String,Object>] | 
					
						
							|  |  |  |         attr_accessor :path_filters | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Similar to path_filters, this contains set of filters to apply if `path` field | 
					
						
							|  |  |  |         # referes to array elements. This is meant to support value matching beyond | 
					
						
							|  |  |  |         # exact match. To perform exact match, use path_filters. When both path_filters | 
					
						
							|  |  |  |         # and path_value_matchers are set, an implicit AND must be performed. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `pathValueMatchers` | 
					
						
							|  |  |  |         # @return [Hash<String,Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1ValueMatcher>] | 
					
						
							|  |  |  |         attr_accessor :path_value_matchers | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Contains the fully qualified resource name. This field is always populated. ex: | 
					
						
							|  |  |  |         # //cloudresourcemanager.googleapis.com/projects/foo. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `resource` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :resource | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Type of GCP resource being modified/tested. This field is always populated. | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Example: cloudresourcemanager.googleapis.com/Project, compute.googleapis.com/ | 
					
						
							|  |  |  |         # Instance | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `resourceType` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :resource_type | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Can be set with action 'copy' or 'move' to indicate the source field within | 
					
						
							|  |  |  |         # resource or source_resource, ignored if provided for other operation types. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `sourcePath` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :source_path | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Can be set with action 'copy' to copy resource configuration across different | 
					
						
							|  |  |  |         # resources of the same type. Example: A resource clone can be done via action = | 
					
						
							|  |  |  |         # 'copy', path = "/", from = "/", source_resource = and resource_name = . This | 
					
						
							|  |  |  |         # field is empty for all other values of `action`. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `sourceResource` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :source_resource | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Value for the `path` field. Will be set for actions:'add'/'replace'. Maybe set | 
					
						
							|  |  |  |         # for action: 'test'. Either this or `value_matcher` will be set for 'test' | 
					
						
							|  |  |  |         # operation. An exact match must be performed. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `value` | 
					
						
							|  |  |  |         # @return [Object] | 
					
						
							|  |  |  |         attr_accessor :value | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Contains various matching options for values for a GCP resource field. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `valueMatcher` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1ValueMatcher] | 
					
						
							|  |  |  |         attr_accessor :value_matcher | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @action = args[:action] if args.key?(:action) | 
					
						
							|  |  |  |           @path = args[:path] if args.key?(:path) | 
					
						
							|  |  |  |           @path_filters = args[:path_filters] if args.key?(:path_filters) | 
					
						
							|  |  |  |           @path_value_matchers = args[:path_value_matchers] if args.key?(:path_value_matchers) | 
					
						
							|  |  |  |           @resource = args[:resource] if args.key?(:resource) | 
					
						
							|  |  |  |           @resource_type = args[:resource_type] if args.key?(:resource_type) | 
					
						
							|  |  |  |           @source_path = args[:source_path] if args.key?(:source_path) | 
					
						
							|  |  |  |           @source_resource = args[:source_resource] if args.key?(:source_resource) | 
					
						
							|  |  |  |           @value = args[:value] if args.key?(:value) | 
					
						
							|  |  |  |           @value_matcher = args[:value_matcher] if args.key?(:value_matcher) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Group of operations that need to be performed atomically. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1OperationGroup | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # List of operations across one or more resources that belong to this group. | 
					
						
							|  |  |  |         # Loosely based on RFC6902 and should be performed in the order they appear. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `operations` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1Operation>] | 
					
						
							|  |  |  |         attr_accessor :operations | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @operations = args[:operations] if args.key?(:operations) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # A recommendation along with a suggested action. E.g., a rightsizing | 
					
						
							|  |  |  |       # recommendation for an underutilized VM, IAM role recommendations, etc | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1Recommendation | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Optional set of additional impact that this recommendation may have when | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # trying to optimize for the primary category. These may be positive or negative. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `additionalImpact` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1Impact>] | 
					
						
							|  |  |  |         attr_accessor :additional_impact | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Insights that led to this recommendation. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `associatedInsights` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1RecommendationInsightReference>] | 
					
						
							|  |  |  |         attr_accessor :associated_insights | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Contains what resources are changing and how they are changing. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `content` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1RecommendationContent] | 
					
						
							|  |  |  |         attr_accessor :content | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Free-form human readable summary in English. The maximum length is 500 | 
					
						
							|  |  |  |         # characters. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `description` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :description | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Fingerprint of the Recommendation. Provides optimistic locking when updating | 
					
						
							|  |  |  |         # states. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `etag` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :etag | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Last time this recommendation was refreshed by the system that created it in | 
					
						
							|  |  |  |         # the first place. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `lastRefreshTime` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :last_refresh_time | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Name of recommendation. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `name` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :name | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Contains the impact a recommendation can have for a given category. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `primaryImpact` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1Impact] | 
					
						
							|  |  |  |         attr_accessor :primary_impact | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Contains an identifier for a subtype of recommendations produced for the same | 
					
						
							|  |  |  |         # recommender. Subtype is a function of content and impact, meaning a new | 
					
						
							|  |  |  |         # subtype might be added when significant changes to `content` or ` | 
					
						
							|  |  |  |         # primary_impact.category` are introduced. See the Recommenders section to see a | 
					
						
							|  |  |  |         # list of subtypes for a given Recommender. Examples: For recommender = "google. | 
					
						
							|  |  |  |         # iam.policy.Recommender", recommender_subtype can be one of "REMOVE_ROLE"/" | 
					
						
							|  |  |  |         # REPLACE_ROLE" | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `recommenderSubtype` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :recommender_subtype | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Information for state. Contains state and metadata. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `stateInfo` | 
					
						
							|  |  |  |         # @return [Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1RecommendationStateInfo] | 
					
						
							|  |  |  |         attr_accessor :state_info | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @additional_impact = args[:additional_impact] if args.key?(:additional_impact) | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |           @associated_insights = args[:associated_insights] if args.key?(:associated_insights) | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |           @content = args[:content] if args.key?(:content) | 
					
						
							|  |  |  |           @description = args[:description] if args.key?(:description) | 
					
						
							|  |  |  |           @etag = args[:etag] if args.key?(:etag) | 
					
						
							|  |  |  |           @last_refresh_time = args[:last_refresh_time] if args.key?(:last_refresh_time) | 
					
						
							|  |  |  |           @name = args[:name] if args.key?(:name) | 
					
						
							|  |  |  |           @primary_impact = args[:primary_impact] if args.key?(:primary_impact) | 
					
						
							|  |  |  |           @recommender_subtype = args[:recommender_subtype] if args.key?(:recommender_subtype) | 
					
						
							|  |  |  |           @state_info = args[:state_info] if args.key?(:state_info) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Contains what resources are changing and how they are changing. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1RecommendationContent | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Operations to one or more Google Cloud resources grouped in such a way that, | 
					
						
							|  |  |  |         # all operations within one group are expected to be performed atomically and in | 
					
						
							|  |  |  |         # an order. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `operationGroups` | 
					
						
							|  |  |  |         # @return [Array<Google::Apis::RecommenderV1beta1::GoogleCloudRecommenderV1beta1OperationGroup>] | 
					
						
							|  |  |  |         attr_accessor :operation_groups | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @operation_groups = args[:operation_groups] if args.key?(:operation_groups) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |       # Reference to an associated insight. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1RecommendationInsightReference | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Insight resource name, e.g. projects/[PROJECT_NUMBER]/locations/[LOCATION]/ | 
					
						
							|  |  |  |         # insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID] | 
					
						
							| 
									
										
										
										
											2020-03-11 00:37:34 +00:00
										 |  |  |         # Corresponds to the JSON property `insight` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :insight | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @insight = args[:insight] if args.key?(:insight) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |       # Information for state. Contains state and metadata. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1RecommendationStateInfo | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `state` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :state | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # A map of metadata for the state, provided by user or automations systems. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `stateMetadata` | 
					
						
							|  |  |  |         # @return [Hash<String,String>] | 
					
						
							|  |  |  |         attr_accessor :state_metadata | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @state = args[:state] if args.key?(:state) | 
					
						
							|  |  |  |           @state_metadata = args[:state_metadata] if args.key?(:state_metadata) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Contains various matching options for values for a GCP resource field. | 
					
						
							|  |  |  |       class GoogleCloudRecommenderV1beta1ValueMatcher | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # To be used for full regex matching. The regular expression is using the Google | 
					
						
							|  |  |  |         # RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be used with RE2: | 
					
						
							|  |  |  |         # :FullMatch | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `matchesPattern` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :matches_pattern | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @matches_pattern = args[:matches_pattern] if args.key?(:matches_pattern) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       # Represents an amount of money with its currency type. | 
					
						
							|  |  |  |       class GoogleTypeMoney | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-10-21 18:40:01 +00:00
										 |  |  |         # The three-letter currency code defined in ISO 4217. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `currencyCode` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :currency_code | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # Number of nano (10^-9) units of the amount. The value must be between -999,999, | 
					
						
							|  |  |  |         # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be | 
					
						
							|  |  |  |         # positive or zero. If `units` is zero, `nanos` can be positive, zero, or | 
					
						
							|  |  |  |         # negative. If `units` is negative, `nanos` must be negative or zero. For | 
					
						
							|  |  |  |         # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `nanos` | 
					
						
							|  |  |  |         # @return [Fixnum] | 
					
						
							|  |  |  |         attr_accessor :nanos | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-05 00:39:04 +00:00
										 |  |  |         # The whole units of the amount. For example if `currencyCode` is `"USD"`, then | 
					
						
							|  |  |  |         # 1 unit is one US dollar. | 
					
						
							| 
									
										
										
										
											2019-09-28 00:37:10 +00:00
										 |  |  |         # Corresponds to the JSON property `units` | 
					
						
							|  |  |  |         # @return [Fixnum] | 
					
						
							|  |  |  |         attr_accessor :units | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @currency_code = args[:currency_code] if args.key?(:currency_code) | 
					
						
							|  |  |  |           @nanos = args[:nanos] if args.key?(:nanos) | 
					
						
							|  |  |  |           @units = args[:units] if args.key?(:units) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |