lib/google/cloud/dialogflow/v2/environments/paths.rb in google-cloud-dialogflow-v2-0.7.0 vs lib/google/cloud/dialogflow/v2/environments/paths.rb in google-cloud-dialogflow-v2-0.8.0
- old
+ new
@@ -25,18 +25,117 @@
# Path helper methods for the Environments API.
module Paths
##
# Create a fully-qualified Agent resource string.
#
- # The resource will be in the following format:
+ # @overload agent_path(project:)
+ # The resource will be in the following format:
#
- # `projects/{project}/agent`
+ # `projects/{project}/agent`
#
- # @param project [String]
+ # @param project [String]
#
+ # @overload agent_path(project:, location:)
+ # The resource will be in the following format:
+ #
+ # `projects/{project}/locations/{location}/agent`
+ #
+ # @param project [String]
+ # @param location [String]
+ #
# @return [::String]
- def agent_path project:
- "projects/#{project}/agent"
+ def agent_path **args
+ resources = {
+ "project" => (proc do |project:|
+ "projects/#{project}/agent"
+ end),
+ "location:project" => (proc do |project:, location:|
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
+
+ "projects/#{project}/locations/#{location}/agent"
+ end)
+ }
+
+ resource = resources[args.keys.sort.join(":")]
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
+ resource.call(**args)
+ end
+
+ ##
+ # Create a fully-qualified Environment resource string.
+ #
+ # @overload environment_path(project:, environment:)
+ # The resource will be in the following format:
+ #
+ # `projects/{project}/agent/environments/{environment}`
+ #
+ # @param project [String]
+ # @param environment [String]
+ #
+ # @overload environment_path(project:, location:, environment:)
+ # The resource will be in the following format:
+ #
+ # `projects/{project}/locations/{location}/agent/environments/{environment}`
+ #
+ # @param project [String]
+ # @param location [String]
+ # @param environment [String]
+ #
+ # @return [::String]
+ def environment_path **args
+ resources = {
+ "environment:project" => (proc do |project:, environment:|
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
+
+ "projects/#{project}/agent/environments/#{environment}"
+ end),
+ "environment:location:project" => (proc do |project:, location:, environment:|
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
+
+ "projects/#{project}/locations/#{location}/agent/environments/#{environment}"
+ end)
+ }
+
+ resource = resources[args.keys.sort.join(":")]
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
+ resource.call(**args)
+ end
+
+ ##
+ # Create a fully-qualified Fulfillment resource string.
+ #
+ # @overload fulfillment_path(project:)
+ # The resource will be in the following format:
+ #
+ # `projects/{project}/agent/fulfillment`
+ #
+ # @param project [String]
+ #
+ # @overload fulfillment_path(project:, location:)
+ # The resource will be in the following format:
+ #
+ # `projects/{project}/locations/{location}/agent/fulfillment`
+ #
+ # @param project [String]
+ # @param location [String]
+ #
+ # @return [::String]
+ def fulfillment_path **args
+ resources = {
+ "project" => (proc do |project:|
+ "projects/#{project}/agent/fulfillment"
+ end),
+ "location:project" => (proc do |project:, location:|
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
+
+ "projects/#{project}/locations/#{location}/agent/fulfillment"
+ end)
+ }
+
+ resource = resources[args.keys.sort.join(":")]
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
+ resource.call(**args)
end
extend self
end
end