Method: Google::Cloud::Monitoring::V3::ServiceMonitoringService::Paths#service_level_objective_path

Defined in:
lib/google/cloud/monitoring/v3/service_monitoring_service/paths.rb

#service_level_objective_path(project: , service: , service_level_objective: ) ⇒ ::String #service_level_objective_path(organization: , service: , service_level_objective: ) ⇒ ::String #service_level_objective_path(folder: , service: , service_level_objective: ) ⇒ ::String

Create a fully-qualified ServiceLevelObjective resource string.

Overloads:

  • #service_level_objective_path(project: , service: , service_level_objective: ) ⇒ ::String

    The resource will be in the following format:

    projects/{project}/services/{service}/serviceLevelObjectives/{service_level_objective}

    Parameters:

    • project (String) (defaults to: )
    • service (String) (defaults to: )
    • service_level_objective (String) (defaults to: )
  • #service_level_objective_path(organization: , service: , service_level_objective: ) ⇒ ::String

    The resource will be in the following format:

    organizations/{organization}/services/{service}/serviceLevelObjectives/{service_level_objective}

    Parameters:

    • organization (String) (defaults to: )
    • service (String) (defaults to: )
    • service_level_objective (String) (defaults to: )
  • #service_level_objective_path(folder: , service: , service_level_objective: ) ⇒ ::String

    The resource will be in the following format:

    folders/{folder}/services/{service}/serviceLevelObjectives/{service_level_objective}

    Parameters:

    • folder (String) (defaults to: )
    • service (String) (defaults to: )
    • service_level_objective (String) (defaults to: )

Returns:

  • (::String)

Raises:

  • (::ArgumentError)
[View source]

152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/google/cloud/monitoring/v3/service_monitoring_service/paths.rb', line 152

def service_level_objective_path **args
  resources = {
    "project:service:service_level_objective" => (proc do |project:, service:, service_level_objective:|
      raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
      raise ::ArgumentError, "service cannot contain /" if service.to_s.include? "/"

      "projects/#{project}/services/#{service}/serviceLevelObjectives/#{service_level_objective}"
    end),
    "organization:service:service_level_objective" => (proc do |organization:, service:, service_level_objective:|
      raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
      raise ::ArgumentError, "service cannot contain /" if service.to_s.include? "/"

      "organizations/#{organization}/services/#{service}/serviceLevelObjectives/#{service_level_objective}"
    end),
    "folder:service:service_level_objective" => (proc do |folder:, service:, service_level_objective:|
      raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
      raise ::ArgumentError, "service cannot contain /" if service.to_s.include? "/"

      "folders/#{folder}/services/#{service}/serviceLevelObjectives/#{service_level_objective}"
    end)
  }

  resource = resources[args.keys.sort.join(":")]
  raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
  resource.call(**args)
end