google-cloud-kms-v1 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '019a2267f33dda5561da56ed41cf332d8fd4b6fb3cb45587be780dc0db71460d'
4
- data.tar.gz: bd72d7db29386ece91aed2c0eadfffa3ae802e4c57923d86c4de683d40ca06d4
3
+ metadata.gz: 5dd007295b6f2ec2dbd524910385762136fa4c92827ae2bf146dea3cd986395b
4
+ data.tar.gz: dad1b2dd3104df2b1169aaf28b420409be257c25430fb53a94b032f30c1b932e
5
5
  SHA512:
6
- metadata.gz: 1a6a96462ae5e450a969e049c2ad9fb6c1e67fd6a49d19893a96c91933f24cde330b5d544cd347e6e271eff4647646e5caae299c159d64fbf9f46d37abbc137f
7
- data.tar.gz: f822a78c784ef272766834567079b063847774afad91027b79309207c238d2161b5e6339cd3841389b06fec6dc295de32a790cccf08efc42e55c7fadf06ce624
6
+ metadata.gz: 3fcf9e9fedafc0005219bece87a5167fa96968560a659cc2d0ea68b272500933caf80435c665ee54e48c8c5b0551149ba60d98ff4869176067d85b7fc02bc04c
7
+ data.tar.gz: 6fb8eeb103261677363b217ba3e36e49a9815c64ac9afa0ff82d0b450fa9aeef89f91b24d35bef13333f702786fcdbbf2fb3b89ed338bec9ed5ebf80a909a73e
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ruby Client for the Cloud Key Management Service (KMS) V1 API
2
2
 
3
- API Client library for the Cloud Key Management Service (KMS) V1 API
3
+ Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications.
4
4
 
5
5
  Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications.
6
6
 
@@ -578,6 +578,181 @@ module Google
578
578
  raise ::Google::Cloud::Error.from_error(e)
579
579
  end
580
580
 
581
+ ##
582
+ # Returns the {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} singleton resource
583
+ # for a given project and location.
584
+ #
585
+ # @overload get_ekm_config(request, options = nil)
586
+ # Pass arguments to `get_ekm_config` via a request object, either of type
587
+ # {::Google::Cloud::Kms::V1::GetEkmConfigRequest} or an equivalent Hash.
588
+ #
589
+ # @param request [::Google::Cloud::Kms::V1::GetEkmConfigRequest, ::Hash]
590
+ # A request object representing the call parameters. Required. To specify no
591
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
592
+ # @param options [::Gapic::CallOptions, ::Hash]
593
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
594
+ #
595
+ # @overload get_ekm_config(name: nil)
596
+ # Pass arguments to `get_ekm_config` via keyword arguments. Note that at
597
+ # least one keyword argument is required. To specify no parameters, or to keep all
598
+ # the default parameter values, pass an empty Hash as a request object (see above).
599
+ #
600
+ # @param name [::String]
601
+ # Required. The {::Google::Cloud::Kms::V1::EkmConfig#name name} of the
602
+ # {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} to get.
603
+ #
604
+ # @yield [response, operation] Access the result along with the RPC operation
605
+ # @yieldparam response [::Google::Cloud::Kms::V1::EkmConfig]
606
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
607
+ #
608
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
609
+ #
610
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
611
+ #
612
+ # @example Basic example
613
+ # require "google/cloud/kms/v1"
614
+ #
615
+ # # Create a client object. The client can be reused for multiple calls.
616
+ # client = Google::Cloud::Kms::V1::EkmService::Client.new
617
+ #
618
+ # # Create a request. To set request fields, pass in keyword arguments.
619
+ # request = Google::Cloud::Kms::V1::GetEkmConfigRequest.new
620
+ #
621
+ # # Call the get_ekm_config method.
622
+ # result = client.get_ekm_config request
623
+ #
624
+ # # The returned object is of type Google::Cloud::Kms::V1::EkmConfig.
625
+ # p result
626
+ #
627
+ def get_ekm_config request, options = nil
628
+ raise ::ArgumentError, "request must be provided" if request.nil?
629
+
630
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::GetEkmConfigRequest
631
+
632
+ # Converts hash and nil to an options object
633
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
634
+
635
+ # Customize the options with defaults
636
+ metadata = @config.rpcs.get_ekm_config.metadata.to_h
637
+
638
+ # Set x-goog-api-client and x-goog-user-project headers
639
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
640
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
641
+ gapic_version: ::Google::Cloud::Kms::V1::VERSION
642
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
643
+
644
+ header_params = {}
645
+ if request.name
646
+ header_params["name"] = request.name
647
+ end
648
+
649
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
650
+ metadata[:"x-goog-request-params"] ||= request_params_header
651
+
652
+ options.apply_defaults timeout: @config.rpcs.get_ekm_config.timeout,
653
+ metadata: metadata,
654
+ retry_policy: @config.rpcs.get_ekm_config.retry_policy
655
+
656
+ options.apply_defaults timeout: @config.timeout,
657
+ metadata: @config.metadata,
658
+ retry_policy: @config.retry_policy
659
+
660
+ @ekm_service_stub.call_rpc :get_ekm_config, request, options: options do |response, operation|
661
+ yield response, operation if block_given?
662
+ return response
663
+ end
664
+ rescue ::GRPC::BadStatus => e
665
+ raise ::Google::Cloud::Error.from_error(e)
666
+ end
667
+
668
+ ##
669
+ # Updates the {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} singleton resource
670
+ # for a given project and location.
671
+ #
672
+ # @overload update_ekm_config(request, options = nil)
673
+ # Pass arguments to `update_ekm_config` via a request object, either of type
674
+ # {::Google::Cloud::Kms::V1::UpdateEkmConfigRequest} or an equivalent Hash.
675
+ #
676
+ # @param request [::Google::Cloud::Kms::V1::UpdateEkmConfigRequest, ::Hash]
677
+ # A request object representing the call parameters. Required. To specify no
678
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
679
+ # @param options [::Gapic::CallOptions, ::Hash]
680
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
681
+ #
682
+ # @overload update_ekm_config(ekm_config: nil, update_mask: nil)
683
+ # Pass arguments to `update_ekm_config` via keyword arguments. Note that at
684
+ # least one keyword argument is required. To specify no parameters, or to keep all
685
+ # the default parameter values, pass an empty Hash as a request object (see above).
686
+ #
687
+ # @param ekm_config [::Google::Cloud::Kms::V1::EkmConfig, ::Hash]
688
+ # Required. {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} with updated values.
689
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
690
+ # Required. List of fields to be updated in this request.
691
+ #
692
+ # @yield [response, operation] Access the result along with the RPC operation
693
+ # @yieldparam response [::Google::Cloud::Kms::V1::EkmConfig]
694
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
695
+ #
696
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
697
+ #
698
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
699
+ #
700
+ # @example Basic example
701
+ # require "google/cloud/kms/v1"
702
+ #
703
+ # # Create a client object. The client can be reused for multiple calls.
704
+ # client = Google::Cloud::Kms::V1::EkmService::Client.new
705
+ #
706
+ # # Create a request. To set request fields, pass in keyword arguments.
707
+ # request = Google::Cloud::Kms::V1::UpdateEkmConfigRequest.new
708
+ #
709
+ # # Call the update_ekm_config method.
710
+ # result = client.update_ekm_config request
711
+ #
712
+ # # The returned object is of type Google::Cloud::Kms::V1::EkmConfig.
713
+ # p result
714
+ #
715
+ def update_ekm_config request, options = nil
716
+ raise ::ArgumentError, "request must be provided" if request.nil?
717
+
718
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::UpdateEkmConfigRequest
719
+
720
+ # Converts hash and nil to an options object
721
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
722
+
723
+ # Customize the options with defaults
724
+ metadata = @config.rpcs.update_ekm_config.metadata.to_h
725
+
726
+ # Set x-goog-api-client and x-goog-user-project headers
727
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
728
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
729
+ gapic_version: ::Google::Cloud::Kms::V1::VERSION
730
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
731
+
732
+ header_params = {}
733
+ if request.ekm_config&.name
734
+ header_params["ekm_config.name"] = request.ekm_config.name
735
+ end
736
+
737
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
738
+ metadata[:"x-goog-request-params"] ||= request_params_header
739
+
740
+ options.apply_defaults timeout: @config.rpcs.update_ekm_config.timeout,
741
+ metadata: metadata,
742
+ retry_policy: @config.rpcs.update_ekm_config.retry_policy
743
+
744
+ options.apply_defaults timeout: @config.timeout,
745
+ metadata: @config.metadata,
746
+ retry_policy: @config.retry_policy
747
+
748
+ @ekm_service_stub.call_rpc :update_ekm_config, request, options: options do |response, operation|
749
+ yield response, operation if block_given?
750
+ return response
751
+ end
752
+ rescue ::GRPC::BadStatus => e
753
+ raise ::Google::Cloud::Error.from_error(e)
754
+ end
755
+
581
756
  ##
582
757
  # Configuration class for the EkmService API.
583
758
  #
@@ -733,6 +908,16 @@ module Google
733
908
  # @return [::Gapic::Config::Method]
734
909
  #
735
910
  attr_reader :update_ekm_connection
911
+ ##
912
+ # RPC-specific configuration for `get_ekm_config`
913
+ # @return [::Gapic::Config::Method]
914
+ #
915
+ attr_reader :get_ekm_config
916
+ ##
917
+ # RPC-specific configuration for `update_ekm_config`
918
+ # @return [::Gapic::Config::Method]
919
+ #
920
+ attr_reader :update_ekm_config
736
921
 
737
922
  # @private
738
923
  def initialize parent_rpcs = nil
@@ -744,6 +929,10 @@ module Google
744
929
  @create_ekm_connection = ::Gapic::Config::Method.new create_ekm_connection_config
745
930
  update_ekm_connection_config = parent_rpcs.update_ekm_connection if parent_rpcs.respond_to? :update_ekm_connection
746
931
  @update_ekm_connection = ::Gapic::Config::Method.new update_ekm_connection_config
932
+ get_ekm_config_config = parent_rpcs.get_ekm_config if parent_rpcs.respond_to? :get_ekm_config
933
+ @get_ekm_config = ::Gapic::Config::Method.new get_ekm_config_config
934
+ update_ekm_config_config = parent_rpcs.update_ekm_config if parent_rpcs.respond_to? :update_ekm_config
935
+ @update_ekm_config = ::Gapic::Config::Method.new update_ekm_config_config
747
936
 
748
937
  yield self if block_given?
749
938
  end
@@ -24,6 +24,23 @@ module Google
24
24
  module EkmService
25
25
  # Path helper methods for the EkmService API.
26
26
  module Paths
27
+ ##
28
+ # Create a fully-qualified EkmConfig resource string.
29
+ #
30
+ # The resource will be in the following format:
31
+ #
32
+ # `projects/{project}/locations/{location}/ekmConfig`
33
+ #
34
+ # @param project [String]
35
+ # @param location [String]
36
+ #
37
+ # @return [::String]
38
+ def ekm_config_path project:, location:
39
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
40
+
41
+ "projects/#{project}/locations/#{location}/ekmConfig"
42
+ end
43
+
27
44
  ##
28
45
  # Create a fully-qualified EkmConnection resource string.
29
46
  #
@@ -475,6 +475,135 @@ module Google
475
475
  raise ::Google::Cloud::Error.from_error(e)
476
476
  end
477
477
 
478
+ ##
479
+ # Returns the {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} singleton resource
480
+ # for a given project and location.
481
+ #
482
+ # @overload get_ekm_config(request, options = nil)
483
+ # Pass arguments to `get_ekm_config` via a request object, either of type
484
+ # {::Google::Cloud::Kms::V1::GetEkmConfigRequest} or an equivalent Hash.
485
+ #
486
+ # @param request [::Google::Cloud::Kms::V1::GetEkmConfigRequest, ::Hash]
487
+ # A request object representing the call parameters. Required. To specify no
488
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
489
+ # @param options [::Gapic::CallOptions, ::Hash]
490
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
491
+ #
492
+ # @overload get_ekm_config(name: nil)
493
+ # Pass arguments to `get_ekm_config` via keyword arguments. Note that at
494
+ # least one keyword argument is required. To specify no parameters, or to keep all
495
+ # the default parameter values, pass an empty Hash as a request object (see above).
496
+ #
497
+ # @param name [::String]
498
+ # Required. The {::Google::Cloud::Kms::V1::EkmConfig#name name} of the
499
+ # {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} to get.
500
+ # @yield [result, operation] Access the result along with the TransportOperation object
501
+ # @yieldparam result [::Google::Cloud::Kms::V1::EkmConfig]
502
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
503
+ #
504
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
505
+ #
506
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
507
+ def get_ekm_config request, options = nil
508
+ raise ::ArgumentError, "request must be provided" if request.nil?
509
+
510
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::GetEkmConfigRequest
511
+
512
+ # Converts hash and nil to an options object
513
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
514
+
515
+ # Customize the options with defaults
516
+ call_metadata = @config.rpcs.get_ekm_config.metadata.to_h
517
+
518
+ # Set x-goog-api-client and x-goog-user-project headers
519
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
520
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
521
+ gapic_version: ::Google::Cloud::Kms::V1::VERSION,
522
+ transports_version_send: [:rest]
523
+
524
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
525
+
526
+ options.apply_defaults timeout: @config.rpcs.get_ekm_config.timeout,
527
+ metadata: call_metadata,
528
+ retry_policy: @config.rpcs.get_ekm_config.retry_policy
529
+
530
+ options.apply_defaults timeout: @config.timeout,
531
+ metadata: @config.metadata,
532
+ retry_policy: @config.retry_policy
533
+
534
+ @ekm_service_stub.get_ekm_config request, options do |result, operation|
535
+ yield result, operation if block_given?
536
+ return result
537
+ end
538
+ rescue ::Gapic::Rest::Error => e
539
+ raise ::Google::Cloud::Error.from_error(e)
540
+ end
541
+
542
+ ##
543
+ # Updates the {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} singleton resource
544
+ # for a given project and location.
545
+ #
546
+ # @overload update_ekm_config(request, options = nil)
547
+ # Pass arguments to `update_ekm_config` via a request object, either of type
548
+ # {::Google::Cloud::Kms::V1::UpdateEkmConfigRequest} or an equivalent Hash.
549
+ #
550
+ # @param request [::Google::Cloud::Kms::V1::UpdateEkmConfigRequest, ::Hash]
551
+ # A request object representing the call parameters. Required. To specify no
552
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
553
+ # @param options [::Gapic::CallOptions, ::Hash]
554
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
555
+ #
556
+ # @overload update_ekm_config(ekm_config: nil, update_mask: nil)
557
+ # Pass arguments to `update_ekm_config` via keyword arguments. Note that at
558
+ # least one keyword argument is required. To specify no parameters, or to keep all
559
+ # the default parameter values, pass an empty Hash as a request object (see above).
560
+ #
561
+ # @param ekm_config [::Google::Cloud::Kms::V1::EkmConfig, ::Hash]
562
+ # Required. {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} with updated values.
563
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
564
+ # Required. List of fields to be updated in this request.
565
+ # @yield [result, operation] Access the result along with the TransportOperation object
566
+ # @yieldparam result [::Google::Cloud::Kms::V1::EkmConfig]
567
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
568
+ #
569
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
570
+ #
571
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
572
+ def update_ekm_config request, options = nil
573
+ raise ::ArgumentError, "request must be provided" if request.nil?
574
+
575
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::UpdateEkmConfigRequest
576
+
577
+ # Converts hash and nil to an options object
578
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
579
+
580
+ # Customize the options with defaults
581
+ call_metadata = @config.rpcs.update_ekm_config.metadata.to_h
582
+
583
+ # Set x-goog-api-client and x-goog-user-project headers
584
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
585
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
586
+ gapic_version: ::Google::Cloud::Kms::V1::VERSION,
587
+ transports_version_send: [:rest]
588
+
589
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
590
+
591
+ options.apply_defaults timeout: @config.rpcs.update_ekm_config.timeout,
592
+ metadata: call_metadata,
593
+ retry_policy: @config.rpcs.update_ekm_config.retry_policy
594
+
595
+ options.apply_defaults timeout: @config.timeout,
596
+ metadata: @config.metadata,
597
+ retry_policy: @config.retry_policy
598
+
599
+ @ekm_service_stub.update_ekm_config request, options do |result, operation|
600
+ yield result, operation if block_given?
601
+ return result
602
+ end
603
+ rescue ::Gapic::Rest::Error => e
604
+ raise ::Google::Cloud::Error.from_error(e)
605
+ end
606
+
478
607
  ##
479
608
  # Configuration class for the EkmService REST API.
480
609
  #
@@ -625,6 +754,16 @@ module Google
625
754
  # @return [::Gapic::Config::Method]
626
755
  #
627
756
  attr_reader :update_ekm_connection
757
+ ##
758
+ # RPC-specific configuration for `get_ekm_config`
759
+ # @return [::Gapic::Config::Method]
760
+ #
761
+ attr_reader :get_ekm_config
762
+ ##
763
+ # RPC-specific configuration for `update_ekm_config`
764
+ # @return [::Gapic::Config::Method]
765
+ #
766
+ attr_reader :update_ekm_config
628
767
 
629
768
  # @private
630
769
  def initialize parent_rpcs = nil
@@ -636,6 +775,10 @@ module Google
636
775
  @create_ekm_connection = ::Gapic::Config::Method.new create_ekm_connection_config
637
776
  update_ekm_connection_config = parent_rpcs.update_ekm_connection if parent_rpcs.respond_to? :update_ekm_connection
638
777
  @update_ekm_connection = ::Gapic::Config::Method.new update_ekm_connection_config
778
+ get_ekm_config_config = parent_rpcs.get_ekm_config if parent_rpcs.respond_to? :get_ekm_config
779
+ @get_ekm_config = ::Gapic::Config::Method.new get_ekm_config_config
780
+ update_ekm_config_config = parent_rpcs.update_ekm_config if parent_rpcs.respond_to? :update_ekm_config
781
+ @update_ekm_config = ::Gapic::Config::Method.new update_ekm_config_config
639
782
 
640
783
  yield self if block_given?
641
784
  end
@@ -192,6 +192,82 @@ module Google
192
192
  result
193
193
  end
194
194
 
195
+ ##
196
+ # Baseline implementation for the get_ekm_config REST call
197
+ #
198
+ # @param request_pb [::Google::Cloud::Kms::V1::GetEkmConfigRequest]
199
+ # A request object representing the call parameters. Required.
200
+ # @param options [::Gapic::CallOptions]
201
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
202
+ #
203
+ # @yield [result, operation] Access the result along with the TransportOperation object
204
+ # @yieldparam result [::Google::Cloud::Kms::V1::EkmConfig]
205
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
206
+ #
207
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
208
+ # A result object deserialized from the server's reply
209
+ def get_ekm_config request_pb, options = nil
210
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
211
+
212
+ verb, uri, query_string_params, body = ServiceStub.transcode_get_ekm_config_request request_pb
213
+ query_string_params = if query_string_params.any?
214
+ query_string_params.to_h { |p| p.split("=", 2) }
215
+ else
216
+ {}
217
+ end
218
+
219
+ response = @client_stub.make_http_request(
220
+ verb,
221
+ uri: uri,
222
+ body: body || "",
223
+ params: query_string_params,
224
+ options: options
225
+ )
226
+ operation = ::Gapic::Rest::TransportOperation.new response
227
+ result = ::Google::Cloud::Kms::V1::EkmConfig.decode_json response.body, ignore_unknown_fields: true
228
+
229
+ yield result, operation if block_given?
230
+ result
231
+ end
232
+
233
+ ##
234
+ # Baseline implementation for the update_ekm_config REST call
235
+ #
236
+ # @param request_pb [::Google::Cloud::Kms::V1::UpdateEkmConfigRequest]
237
+ # A request object representing the call parameters. Required.
238
+ # @param options [::Gapic::CallOptions]
239
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
240
+ #
241
+ # @yield [result, operation] Access the result along with the TransportOperation object
242
+ # @yieldparam result [::Google::Cloud::Kms::V1::EkmConfig]
243
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
244
+ #
245
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
246
+ # A result object deserialized from the server's reply
247
+ def update_ekm_config request_pb, options = nil
248
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
249
+
250
+ verb, uri, query_string_params, body = ServiceStub.transcode_update_ekm_config_request request_pb
251
+ query_string_params = if query_string_params.any?
252
+ query_string_params.to_h { |p| p.split("=", 2) }
253
+ else
254
+ {}
255
+ end
256
+
257
+ response = @client_stub.make_http_request(
258
+ verb,
259
+ uri: uri,
260
+ body: body || "",
261
+ params: query_string_params,
262
+ options: options
263
+ )
264
+ operation = ::Gapic::Rest::TransportOperation.new response
265
+ result = ::Google::Cloud::Kms::V1::EkmConfig.decode_json response.body, ignore_unknown_fields: true
266
+
267
+ yield result, operation if block_given?
268
+ result
269
+ end
270
+
195
271
  ##
196
272
  # @private
197
273
  #
@@ -277,6 +353,49 @@ module Google
277
353
  )
278
354
  transcoder.transcode request_pb
279
355
  end
356
+
357
+ ##
358
+ # @private
359
+ #
360
+ # GRPC transcoding helper method for the get_ekm_config REST call
361
+ #
362
+ # @param request_pb [::Google::Cloud::Kms::V1::GetEkmConfigRequest]
363
+ # A request object representing the call parameters. Required.
364
+ # @return [Array(String, [String, nil], Hash{String => String})]
365
+ # Uri, Body, Query string parameters
366
+ def self.transcode_get_ekm_config_request request_pb
367
+ transcoder = Gapic::Rest::GrpcTranscoder.new
368
+ .with_bindings(
369
+ uri_method: :get,
370
+ uri_template: "/v1/{name}",
371
+ matches: [
372
+ ["name", %r{^projects/[^/]+/locations/[^/]+/ekmConfig/?$}, false]
373
+ ]
374
+ )
375
+ transcoder.transcode request_pb
376
+ end
377
+
378
+ ##
379
+ # @private
380
+ #
381
+ # GRPC transcoding helper method for the update_ekm_config REST call
382
+ #
383
+ # @param request_pb [::Google::Cloud::Kms::V1::UpdateEkmConfigRequest]
384
+ # A request object representing the call parameters. Required.
385
+ # @return [Array(String, [String, nil], Hash{String => String})]
386
+ # Uri, Body, Query string parameters
387
+ def self.transcode_update_ekm_config_request request_pb
388
+ transcoder = Gapic::Rest::GrpcTranscoder.new
389
+ .with_bindings(
390
+ uri_method: :patch,
391
+ uri_template: "/v1/{ekm_config.name}",
392
+ body: "ekm_config",
393
+ matches: [
394
+ ["ekm_config.name", %r{^projects/[^/]+/locations/[^/]+/ekmConfig/?$}, false]
395
+ ]
396
+ )
397
+ transcoder.transcode request_pb
398
+ end
280
399
  end
281
400
  end
282
401
  end
@@ -36,6 +36,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
36
36
  optional :ekm_connection, :message, 1, "google.cloud.kms.v1.EkmConnection"
37
37
  optional :update_mask, :message, 2, "google.protobuf.FieldMask"
38
38
  end
39
+ add_message "google.cloud.kms.v1.GetEkmConfigRequest" do
40
+ optional :name, :string, 1
41
+ end
42
+ add_message "google.cloud.kms.v1.UpdateEkmConfigRequest" do
43
+ optional :ekm_config, :message, 1, "google.cloud.kms.v1.EkmConfig"
44
+ optional :update_mask, :message, 2, "google.protobuf.FieldMask"
45
+ end
39
46
  add_message "google.cloud.kms.v1.Certificate" do
40
47
  optional :raw_der, :bytes, 1
41
48
  optional :parsed, :bool, 2
@@ -52,6 +59,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
52
59
  optional :create_time, :message, 2, "google.protobuf.Timestamp"
53
60
  repeated :service_resolvers, :message, 3, "google.cloud.kms.v1.EkmConnection.ServiceResolver"
54
61
  optional :etag, :string, 5
62
+ optional :key_management_mode, :enum, 6, "google.cloud.kms.v1.EkmConnection.KeyManagementMode"
63
+ optional :crypto_space_path, :string, 7
55
64
  end
56
65
  add_message "google.cloud.kms.v1.EkmConnection.ServiceResolver" do
57
66
  optional :service_directory_service, :string, 1
@@ -59,6 +68,15 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
59
68
  optional :hostname, :string, 3
60
69
  repeated :server_certificates, :message, 4, "google.cloud.kms.v1.Certificate"
61
70
  end
71
+ add_enum "google.cloud.kms.v1.EkmConnection.KeyManagementMode" do
72
+ value :KEY_MANAGEMENT_MODE_UNSPECIFIED, 0
73
+ value :MANUAL, 1
74
+ value :CLOUD_KMS, 2
75
+ end
76
+ add_message "google.cloud.kms.v1.EkmConfig" do
77
+ optional :name, :string, 1
78
+ optional :default_ekm_connection, :string, 2
79
+ end
62
80
  end
63
81
  end
64
82
 
@@ -71,9 +89,13 @@ module Google
71
89
  GetEkmConnectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.GetEkmConnectionRequest").msgclass
72
90
  CreateEkmConnectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.CreateEkmConnectionRequest").msgclass
73
91
  UpdateEkmConnectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.UpdateEkmConnectionRequest").msgclass
92
+ GetEkmConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.GetEkmConfigRequest").msgclass
93
+ UpdateEkmConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.UpdateEkmConfigRequest").msgclass
74
94
  Certificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.Certificate").msgclass
75
95
  EkmConnection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.EkmConnection").msgclass
76
96
  EkmConnection::ServiceResolver = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.EkmConnection.ServiceResolver").msgclass
97
+ EkmConnection::KeyManagementMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.EkmConnection.KeyManagementMode").enummodule
98
+ EkmConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.EkmConfig").msgclass
77
99
  end
78
100
  end
79
101
  end
@@ -47,6 +47,12 @@ module Google
47
47
  rpc :CreateEkmConnection, ::Google::Cloud::Kms::V1::CreateEkmConnectionRequest, ::Google::Cloud::Kms::V1::EkmConnection
48
48
  # Updates an [EkmConnection][google.cloud.kms.v1.EkmConnection]'s metadata.
49
49
  rpc :UpdateEkmConnection, ::Google::Cloud::Kms::V1::UpdateEkmConnectionRequest, ::Google::Cloud::Kms::V1::EkmConnection
50
+ # Returns the [EkmConfig][google.cloud.kms.v1.EkmConfig] singleton resource
51
+ # for a given project and location.
52
+ rpc :GetEkmConfig, ::Google::Cloud::Kms::V1::GetEkmConfigRequest, ::Google::Cloud::Kms::V1::EkmConfig
53
+ # Updates the [EkmConfig][google.cloud.kms.v1.EkmConfig] singleton resource
54
+ # for a given project and location.
55
+ rpc :UpdateEkmConfig, ::Google::Cloud::Kms::V1::UpdateEkmConfigRequest, ::Google::Cloud::Kms::V1::EkmConfig
50
56
  end
51
57
 
52
58
  Stub = Service.rpc_stub_class
@@ -69,6 +69,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
69
69
  optional :import_job, :string, 14
70
70
  optional :import_time, :message, 15, "google.protobuf.Timestamp"
71
71
  optional :import_failure_reason, :string, 16
72
+ optional :generation_failure_reason, :string, 19
73
+ optional :external_destruction_failure_reason, :string, 20
72
74
  optional :external_protection_level_options, :message, 17, "google.cloud.kms.v1.ExternalProtectionLevelOptions"
73
75
  optional :reimport_eligible, :bool, 18
74
76
  end
@@ -112,6 +114,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
112
114
  value :DESTROY_SCHEDULED, 4
113
115
  value :PENDING_IMPORT, 6
114
116
  value :IMPORT_FAILED, 7
117
+ value :GENERATION_FAILED, 8
118
+ value :PENDING_EXTERNAL_DESTRUCTION, 9
119
+ value :EXTERNAL_DESTRUCTION_FAILED, 10
115
120
  end
116
121
  add_enum "google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView" do
117
122
  value :CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED, 0
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Kms
23
23
  module V1
24
- VERSION = "0.17.0"
24
+ VERSION = "0.18.0"
25
25
  end
26
26
  end
27
27
  end
@@ -122,6 +122,30 @@ module Google
122
122
  extend ::Google::Protobuf::MessageExts::ClassMethods
123
123
  end
124
124
 
125
+ # Request message for
126
+ # {::Google::Cloud::Kms::V1::EkmService::Client#get_ekm_config EkmService.GetEkmConfig}.
127
+ # @!attribute [rw] name
128
+ # @return [::String]
129
+ # Required. The {::Google::Cloud::Kms::V1::EkmConfig#name name} of the
130
+ # {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} to get.
131
+ class GetEkmConfigRequest
132
+ include ::Google::Protobuf::MessageExts
133
+ extend ::Google::Protobuf::MessageExts::ClassMethods
134
+ end
135
+
136
+ # Request message for
137
+ # {::Google::Cloud::Kms::V1::EkmService::Client#update_ekm_config EkmService.UpdateEkmConfig}.
138
+ # @!attribute [rw] ekm_config
139
+ # @return [::Google::Cloud::Kms::V1::EkmConfig]
140
+ # Required. {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} with updated values.
141
+ # @!attribute [rw] update_mask
142
+ # @return [::Google::Protobuf::FieldMask]
143
+ # Required. List of fields to be updated in this request.
144
+ class UpdateEkmConfigRequest
145
+ include ::Google::Protobuf::MessageExts
146
+ extend ::Google::Protobuf::MessageExts::ClassMethods
147
+ end
148
+
125
149
  # A {::Google::Cloud::Kms::V1::Certificate Certificate} represents an X.509
126
150
  # certificate used to authenticate HTTPS connections to EKM replicas.
127
151
  # @!attribute [rw] raw_der
@@ -192,6 +216,18 @@ module Google
192
216
  # @return [::String]
193
217
  # Optional. Etag of the currently stored
194
218
  # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection}.
219
+ # @!attribute [rw] key_management_mode
220
+ # @return [::Google::Cloud::Kms::V1::EkmConnection::KeyManagementMode]
221
+ # Optional. Describes who can perform control plane operations on the EKM. If
222
+ # unset, this defaults to
223
+ # {::Google::Cloud::Kms::V1::EkmConnection::KeyManagementMode::MANUAL MANUAL}.
224
+ # @!attribute [rw] crypto_space_path
225
+ # @return [::String]
226
+ # Optional. Identifies the EKM Crypto Space that this
227
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection} maps to. Note: This
228
+ # field is required if
229
+ # {::Google::Cloud::Kms::V1::EkmConnection::KeyManagementMode KeyManagementMode} is
230
+ # {::Google::Cloud::Kms::V1::EkmConnection::KeyManagementMode::CLOUD_KMS CLOUD_KMS}.
195
231
  class EkmConnection
196
232
  include ::Google::Protobuf::MessageExts
197
233
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -224,6 +260,66 @@ module Google
224
260
  include ::Google::Protobuf::MessageExts
225
261
  extend ::Google::Protobuf::MessageExts::ClassMethods
226
262
  end
263
+
264
+ # {::Google::Cloud::Kms::V1::EkmConnection::KeyManagementMode KeyManagementMode}
265
+ # describes who can perform control plane cryptographic operations using this
266
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection}.
267
+ module KeyManagementMode
268
+ # Not specified.
269
+ KEY_MANAGEMENT_MODE_UNSPECIFIED = 0
270
+
271
+ # EKM-side key management operations on
272
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} created with this
273
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection} must be initiated from
274
+ # the EKM directly and cannot be performed from Cloud KMS. This means that:
275
+ # * When creating a
276
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} associated with
277
+ # this
278
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection}, the caller must
279
+ # supply the key path of pre-existing external key material that will be
280
+ # linked to the {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
281
+ # * Destruction of external key material cannot be requested via the
282
+ # Cloud KMS API and must be performed directly in the EKM.
283
+ # * Automatic rotation of key material is not supported.
284
+ MANUAL = 1
285
+
286
+ # All {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} created with this
287
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection} use EKM-side key
288
+ # management operations initiated from Cloud KMS. This means that:
289
+ # * When a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
290
+ # associated with this {::Google::Cloud::Kms::V1::EkmConnection EkmConnection}
291
+ # is
292
+ # created, the EKM automatically generates new key material and a new
293
+ # key path. The caller cannot supply the key path of pre-existing
294
+ # external key material.
295
+ # * Destruction of external key material associated with this
296
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection} can be requested by
297
+ # calling [DestroyCryptoKeyVersion][EkmService.DestroyCryptoKeyVersion].
298
+ # * Automatic rotation of key material is supported.
299
+ CLOUD_KMS = 2
300
+ end
301
+ end
302
+
303
+ # An {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} is a singleton resource that
304
+ # represents configuration parameters that apply to all
305
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} and
306
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} with a
307
+ # {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} of
308
+ # [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC] in a given
309
+ # project and location.
310
+ # @!attribute [r] name
311
+ # @return [::String]
312
+ # Output only. The resource name for the
313
+ # {::Google::Cloud::Kms::V1::EkmConfig EkmConfig} in the format
314
+ # `projects/*/locations/*/ekmConfig`.
315
+ # @!attribute [rw] default_ekm_connection
316
+ # @return [::String]
317
+ # Optional. Resource name of the default
318
+ # {::Google::Cloud::Kms::V1::EkmConnection EkmConnection}. Setting this field to
319
+ # the empty string removes the default.
320
+ class EkmConfig
321
+ include ::Google::Protobuf::MessageExts
322
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
323
  end
228
324
  end
229
325
  end
@@ -341,6 +341,17 @@ module Google
341
341
  # Output only. The root cause of the most recent import failure. Only present
342
342
  # if {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
343
343
  # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::IMPORT_FAILED IMPORT_FAILED}.
344
+ # @!attribute [r] generation_failure_reason
345
+ # @return [::String]
346
+ # Output only. The root cause of the most recent generation failure. Only
347
+ # present if {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
348
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::GENERATION_FAILED GENERATION_FAILED}.
349
+ # @!attribute [r] external_destruction_failure_reason
350
+ # @return [::String]
351
+ # Output only. The root cause of the most recent external destruction
352
+ # failure. Only present if
353
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
354
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::EXTERNAL_DESTRUCTION_FAILED EXTERNAL_DESTRUCTION_FAILED}.
344
355
  # @!attribute [rw] external_protection_level_options
345
356
  # @return [::Google::Cloud::Kms::V1::ExternalProtectionLevelOptions]
346
357
  # ExternalProtectionLevelOptions stores a group of additional fields for
@@ -544,6 +555,23 @@ module Google
544
555
  # Additional details can be found in
545
556
  # {::Google::Cloud::Kms::V1::CryptoKeyVersion#import_failure_reason CryptoKeyVersion.import_failure_reason}.
546
557
  IMPORT_FAILED = 7
558
+
559
+ # This version was not generated successfully. It may not be used, enabled,
560
+ # disabled, or destroyed. Additional details can be found in
561
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#generation_failure_reason CryptoKeyVersion.generation_failure_reason}.
562
+ GENERATION_FAILED = 8
563
+
564
+ # This version was destroyed, and it may not be used or enabled again.
565
+ # Cloud KMS is waiting for the corresponding key material residing in an
566
+ # external key manager to be destroyed.
567
+ PENDING_EXTERNAL_DESTRUCTION = 9
568
+
569
+ # This version was destroyed, and it may not be used or enabled again.
570
+ # However, Cloud KMS could not confirm that the corresponding key material
571
+ # residing in an external key manager was destroyed. Additional details can
572
+ # be found in
573
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#external_destruction_failure_reason CryptoKeyVersion.external_destruction_failure_reason}.
574
+ EXTERNAL_DESTRUCTION_FAILED = 10
547
575
  end
548
576
 
549
577
  # A view for {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}s.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-kms-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.17.1
19
+ version: 0.18.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.17.1
29
+ version: 0.18.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -273,5 +273,6 @@ requirements: []
273
273
  rubygems_version: 3.4.2
274
274
  signing_key:
275
275
  specification_version: 4
276
- summary: API Client library for the Cloud Key Management Service (KMS) V1 API
276
+ summary: Manages keys and performs cryptographic operations in a central cloud service,
277
+ for direct use by other cloud resources and applications.
277
278
  test_files: []