Module: Google::Cloud::Dialogflow::CX

Defined in:
lib/google/cloud/dialogflow/cx.rb,
lib/google/cloud/dialogflow/cx/version.rb

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.agents(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Agents.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Agents::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Agents service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Agents

Service for managing Agents.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



138
139
140
141
142
143
144
145
146
147
148
# File 'lib/google/cloud/dialogflow/cx.rb', line 138

def self.agents version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Agents)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.changelogs(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Changelogs.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Changelogs::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Changelogs service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Changelogs

Service for managing Changelogs.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



172
173
174
175
176
177
178
179
180
181
182
# File 'lib/google/cloud/dialogflow/cx.rb', line 172

def self.changelogs version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Changelogs)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.configure {|::Google::Cloud.configure.dialogflow_cx| ... } ⇒ ::Google::Cloud::Config

Configure the google-cloud-dialogflow-cx library.

The following configuration parameters are supported:

  • credentials (type: String, Hash, Google::Auth::Credentials) - The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object.
  • lib_name (type: String) - The library name as recorded in instrumentation and logging.
  • lib_version (type: String) - The library version as recorded in instrumentation and logging.
  • interceptors (type: Array<GRPC::ClientInterceptor>) - An array of interceptors that are run before calls are executed.
  • timeout (type: Numeric) - Default timeout in seconds.
  • metadata (type: Hash{Symbol=>String}) - Additional headers to be sent with the call.
  • retry_policy (type: Hash) - The retry policy. The value is a hash with the following keys:
    • :initial_delay (type: Numeric) - The initial delay in seconds.
    • :max_delay (type: Numeric) - The max delay in seconds.
    • :multiplier (type: Numeric) - The incremental backoff multiplier.
    • :retry_codes (type: Array<String>) - The error codes that should trigger a retry.

Yields:

Returns:

  • (::Google::Cloud::Config)

    The default configuration used by this library



627
628
629
630
631
# File 'lib/google/cloud/dialogflow/cx.rb', line 627

def self.configure
  yield ::Google::Cloud.configure.dialogflow_cx if block_given?

  ::Google::Cloud.configure.dialogflow_cx
end

.deployments(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Deployments.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Deployments::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Deployments service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Deployments

Service for managing Deployments.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



206
207
208
209
210
211
212
213
214
215
216
# File 'lib/google/cloud/dialogflow/cx.rb', line 206

def self.deployments version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Deployments)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.entity_types(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for EntityTypes.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::EntityTypes::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the EntityTypes service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About EntityTypes

Service for managing EntityTypes.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



240
241
242
243
244
245
246
247
248
249
250
# File 'lib/google/cloud/dialogflow/cx.rb', line 240

def self.entity_types version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:EntityTypes)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.environments(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Environments.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Environments::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Environments service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Environments

Service for managing Environments.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



485
486
487
488
489
490
491
492
493
494
495
# File 'lib/google/cloud/dialogflow/cx.rb', line 485

def self.environments version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Environments)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.experiments(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Experiments.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Experiments::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Experiments service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Experiments

Service for managing Experiments.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



519
520
521
522
523
524
525
526
527
528
529
# File 'lib/google/cloud/dialogflow/cx.rb', line 519

def self.experiments version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Experiments)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.flows(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Flows.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Flows::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Flows service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Flows

Service for managing Flows.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



104
105
106
107
108
109
110
111
112
113
114
# File 'lib/google/cloud/dialogflow/cx.rb', line 104

def self.flows version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Flows)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.intents(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Intents.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Intents::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Intents service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Intents

Service for managing Intents.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



274
275
276
277
278
279
280
281
282
283
284
# File 'lib/google/cloud/dialogflow/cx.rb', line 274

def self.intents version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Intents)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.pages(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Pages.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Pages::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Pages service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Pages

Service for managing Pages.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



70
71
72
73
74
75
76
77
78
79
80
# File 'lib/google/cloud/dialogflow/cx.rb', line 70

def self.pages version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Pages)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.security_settings_service(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for SecuritySettingsService.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::SecuritySettingsService::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the SecuritySettingsService service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About SecuritySettingsService

Service for managing security settings for Dialogflow.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



553
554
555
556
557
558
559
560
561
562
563
# File 'lib/google/cloud/dialogflow/cx.rb', line 553

def self.security_settings_service version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:SecuritySettingsService)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.session_entity_types(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for SessionEntityTypes.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::SessionEntityTypes::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the SessionEntityTypes service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About SessionEntityTypes

Service for managing SessionEntityTypes.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



309
310
311
312
313
314
315
316
317
318
319
# File 'lib/google/cloud/dialogflow/cx.rb', line 309

def self.session_entity_types version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:SessionEntityTypes)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.sessions(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Sessions.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Sessions::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Sessions service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Sessions

A session represents an interaction with a user. You retrieve user input and pass it to the DetectIntent method to determine user intent and respond.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



346
347
348
349
350
351
352
353
354
355
356
# File 'lib/google/cloud/dialogflow/cx.rb', line 346

def self.sessions version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Sessions)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.test_cases(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for TestCases.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::TestCases::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the TestCases service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About TestCases

Service for managing Test Cases and Test Case Results.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



416
417
418
419
420
421
422
423
424
425
426
# File 'lib/google/cloud/dialogflow/cx.rb', line 416

def self.test_cases version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:TestCases)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.transition_route_groups(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for TransitionRouteGroups.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::TransitionRouteGroups::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the TransitionRouteGroups service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About TransitionRouteGroups

Service for managing TransitionRouteGroups.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



381
382
383
384
385
386
387
388
389
390
391
# File 'lib/google/cloud/dialogflow/cx.rb', line 381

def self.transition_route_groups version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:TransitionRouteGroups)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.versions(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Versions.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Versions::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Versions service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Versions

Service for managing Versions.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



587
588
589
590
591
592
593
594
595
596
597
# File 'lib/google/cloud/dialogflow/cx.rb', line 587

def self.versions version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Versions)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.webhooks(version: :v3, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Webhooks.

By default, this returns an instance of Google::Cloud::Dialogflow::CX::V3::Webhooks::Client for a gRPC client for version V3 of the API. However, you can specify a different API version by passing it in the version parameter. If the Webhooks service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

About Webhooks

Service for managing Webhooks.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v3)

    The API version to connect to. Optional. Defaults to :v3.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



450
451
452
453
454
455
456
457
458
459
460
# File 'lib/google/cloud/dialogflow/cx.rb', line 450

def self.webhooks version: :v3, transport: :grpc, &block
  require "google/cloud/dialogflow/cx/#{version.to_s.downcase}"

  package_name = Google::Cloud::Dialogflow::CX
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Dialogflow::CX.const_get(package_name).const_get(:Webhooks)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end