strongdm 13.11.0 → 13.12.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.
data/lib/svc.rb CHANGED
@@ -2699,6 +2699,357 @@ module SDM #:nodoc:
2699
2699
  end
2700
2700
  end
2701
2701
 
2702
+ # ManagedSecret is a private vertical for creating, reading, updating,
2703
+ # deleting, listing and rotating the managed secrets in the secrets engines as
2704
+ # an authenticated user.
2705
+ #
2706
+ # See {ManagedSecret}.
2707
+ class ManagedSecrets
2708
+ extend Gem::Deprecate
2709
+
2710
+ def initialize(channel, parent)
2711
+ begin
2712
+ @stub = V1::ManagedSecrets::Stub.new(nil, nil, channel_override: channel)
2713
+ rescue => exception
2714
+ raise Plumbing::convert_error_to_porcelain(exception)
2715
+ end
2716
+ @parent = parent
2717
+ end
2718
+
2719
+ # List returns Managed Secrets from a Secret Engine.
2720
+ def list(
2721
+ filter,
2722
+ *args,
2723
+ deadline: nil
2724
+ )
2725
+ req = V1::ManagedSecretListRequest.new()
2726
+ req.meta = V1::ListRequestMetadata.new()
2727
+ if @parent.page_limit > 0
2728
+ req.meta.limit = @parent.page_limit
2729
+ end
2730
+ if not @parent.snapshot_time.nil?
2731
+ req.meta.snapshot_at = @parent.snapshot_time
2732
+ end
2733
+
2734
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2735
+ resp = Enumerator::Generator.new { |g|
2736
+ tries = 0
2737
+ loop do
2738
+ begin
2739
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("ManagedSecrets.List", req), deadline: deadline)
2740
+ rescue => exception
2741
+ if (@parent.shouldRetry(tries, exception))
2742
+ tries + +@parent.jitterSleep(tries)
2743
+ next
2744
+ end
2745
+ raise Plumbing::convert_error_to_porcelain(exception)
2746
+ end
2747
+ tries = 0
2748
+ plumbing_response.managed_secrets.each do |plumbing_item|
2749
+ g.yield Plumbing::convert_managed_secret_to_porcelain(plumbing_item)
2750
+ end
2751
+ break if plumbing_response.meta.next_cursor == ""
2752
+ req.meta.cursor = plumbing_response.meta.next_cursor
2753
+ end
2754
+ }
2755
+ resp
2756
+ end
2757
+
2758
+ # List returns Managed Secrets for an Actor from a Secret Engine.
2759
+ def list_by_actor(
2760
+ filter,
2761
+ *args,
2762
+ deadline: nil
2763
+ )
2764
+ req = V1::ManagedSecretListRequest.new()
2765
+ req.meta = V1::ListRequestMetadata.new()
2766
+ if @parent.page_limit > 0
2767
+ req.meta.limit = @parent.page_limit
2768
+ end
2769
+ if not @parent.snapshot_time.nil?
2770
+ req.meta.snapshot_at = @parent.snapshot_time
2771
+ end
2772
+
2773
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2774
+ resp = Enumerator::Generator.new { |g|
2775
+ tries = 0
2776
+ loop do
2777
+ begin
2778
+ plumbing_response = @stub.list_by_actor(req, metadata: @parent.get_metadata("ManagedSecrets.ListByActor", req), deadline: deadline)
2779
+ rescue => exception
2780
+ if (@parent.shouldRetry(tries, exception))
2781
+ tries + +@parent.jitterSleep(tries)
2782
+ next
2783
+ end
2784
+ raise Plumbing::convert_error_to_porcelain(exception)
2785
+ end
2786
+ tries = 0
2787
+ plumbing_response.managed_secrets.each do |plumbing_item|
2788
+ g.yield Plumbing::convert_managed_secret_to_porcelain(plumbing_item)
2789
+ end
2790
+ break if plumbing_response.meta.next_cursor == ""
2791
+ req.meta.cursor = plumbing_response.meta.next_cursor
2792
+ end
2793
+ }
2794
+ resp
2795
+ end
2796
+
2797
+ # Create creates a Managed Secret
2798
+ def create(
2799
+ managed_secret,
2800
+ deadline: nil
2801
+ )
2802
+ req = V1::ManagedSecretCreateRequest.new()
2803
+
2804
+ req.managed_secret = Plumbing::convert_managed_secret_to_plumbing(managed_secret)
2805
+ tries = 0
2806
+ plumbing_response = nil
2807
+ loop do
2808
+ begin
2809
+ plumbing_response = @stub.create(req, metadata: @parent.get_metadata("ManagedSecrets.Create", req), deadline: deadline)
2810
+ rescue => exception
2811
+ if (@parent.shouldRetry(tries, exception))
2812
+ tries + +@parent.jitterSleep(tries)
2813
+ next
2814
+ end
2815
+ raise Plumbing::convert_error_to_porcelain(exception)
2816
+ end
2817
+ break
2818
+ end
2819
+
2820
+ resp = ManagedSecretCreateResponse.new()
2821
+ resp.managed_secret = Plumbing::convert_managed_secret_to_porcelain(plumbing_response.managed_secret)
2822
+ resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
2823
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2824
+ resp
2825
+ end
2826
+
2827
+ # Update updates a Managed Secret
2828
+ def update(
2829
+ managed_secret,
2830
+ deadline: nil
2831
+ )
2832
+ req = V1::ManagedSecretUpdateRequest.new()
2833
+
2834
+ req.managed_secret = Plumbing::convert_managed_secret_to_plumbing(managed_secret)
2835
+ tries = 0
2836
+ plumbing_response = nil
2837
+ loop do
2838
+ begin
2839
+ plumbing_response = @stub.update(req, metadata: @parent.get_metadata("ManagedSecrets.Update", req), deadline: deadline)
2840
+ rescue => exception
2841
+ if (@parent.shouldRetry(tries, exception))
2842
+ tries + +@parent.jitterSleep(tries)
2843
+ next
2844
+ end
2845
+ raise Plumbing::convert_error_to_porcelain(exception)
2846
+ end
2847
+ break
2848
+ end
2849
+
2850
+ resp = ManagedSecretUpdateResponse.new()
2851
+ resp.managed_secret = Plumbing::convert_managed_secret_to_porcelain(plumbing_response.managed_secret)
2852
+ resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
2853
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2854
+ resp
2855
+ end
2856
+
2857
+ # Rotate forces rotation of Managed Secret
2858
+ def rotate(
2859
+ id,
2860
+ deadline: nil
2861
+ )
2862
+ req = V1::ManagedSecretRotateRequest.new()
2863
+
2864
+ req.id = (id)
2865
+ tries = 0
2866
+ plumbing_response = nil
2867
+ loop do
2868
+ begin
2869
+ plumbing_response = @stub.rotate(req, metadata: @parent.get_metadata("ManagedSecrets.Rotate", req), deadline: deadline)
2870
+ rescue => exception
2871
+ if (@parent.shouldRetry(tries, exception))
2872
+ tries + +@parent.jitterSleep(tries)
2873
+ next
2874
+ end
2875
+ raise Plumbing::convert_error_to_porcelain(exception)
2876
+ end
2877
+ break
2878
+ end
2879
+
2880
+ resp = ManagedSecretRotateResponse.new()
2881
+ resp.meta = Plumbing::convert_generic_response_metadata_to_porcelain(plumbing_response.meta)
2882
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2883
+ resp
2884
+ end
2885
+
2886
+ # Delete deletes a Managed Secret
2887
+ def delete(
2888
+ id,
2889
+ deadline: nil
2890
+ )
2891
+ req = V1::ManagedSecretDeleteRequest.new()
2892
+
2893
+ req.id = (id)
2894
+ tries = 0
2895
+ plumbing_response = nil
2896
+ loop do
2897
+ begin
2898
+ plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("ManagedSecrets.Delete", req), deadline: deadline)
2899
+ rescue => exception
2900
+ if (@parent.shouldRetry(tries, exception))
2901
+ tries + +@parent.jitterSleep(tries)
2902
+ next
2903
+ end
2904
+ raise Plumbing::convert_error_to_porcelain(exception)
2905
+ end
2906
+ break
2907
+ end
2908
+
2909
+ resp = ManagedSecretDeleteResponse.new()
2910
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2911
+ resp
2912
+ end
2913
+
2914
+ # Get gets details of a Managed Secret without sensitive data
2915
+ def get(
2916
+ id,
2917
+ deadline: nil
2918
+ )
2919
+ req = V1::ManagedSecretGetRequest.new()
2920
+ if not @parent.snapshot_time.nil?
2921
+ req.meta = V1::GetRequestMetadata.new()
2922
+ req.meta.snapshot_at = @parent.snapshot_time
2923
+ end
2924
+
2925
+ req.id = (id)
2926
+ tries = 0
2927
+ plumbing_response = nil
2928
+ loop do
2929
+ begin
2930
+ plumbing_response = @stub.get(req, metadata: @parent.get_metadata("ManagedSecrets.Get", req), deadline: deadline)
2931
+ rescue => exception
2932
+ if (@parent.shouldRetry(tries, exception))
2933
+ tries + +@parent.jitterSleep(tries)
2934
+ next
2935
+ end
2936
+ raise Plumbing::convert_error_to_porcelain(exception)
2937
+ end
2938
+ break
2939
+ end
2940
+
2941
+ resp = ManagedSecretGetResponse.new()
2942
+ resp.managed_secret = Plumbing::convert_managed_secret_to_porcelain(plumbing_response.managed_secret)
2943
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
2944
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2945
+ resp
2946
+ end
2947
+
2948
+ # Retrieve returns Managed Secret with sensitive data
2949
+ def retrieve(
2950
+ id,
2951
+ public_key,
2952
+ deadline: nil
2953
+ )
2954
+ req = V1::ManagedSecretRetrieveRequest.new()
2955
+
2956
+ req.id = (id)
2957
+ req.public_key = (public_key)
2958
+ tries = 0
2959
+ plumbing_response = nil
2960
+ loop do
2961
+ begin
2962
+ plumbing_response = @stub.retrieve(req, metadata: @parent.get_metadata("ManagedSecrets.Retrieve", req), deadline: deadline)
2963
+ rescue => exception
2964
+ if (@parent.shouldRetry(tries, exception))
2965
+ tries + +@parent.jitterSleep(tries)
2966
+ next
2967
+ end
2968
+ raise Plumbing::convert_error_to_porcelain(exception)
2969
+ end
2970
+ break
2971
+ end
2972
+
2973
+ resp = ManagedSecretRetrieveResponse.new()
2974
+ resp.managed_secret = Plumbing::convert_managed_secret_to_porcelain(plumbing_response.managed_secret)
2975
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
2976
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2977
+ resp
2978
+ end
2979
+
2980
+ # Validate returns the result of testing the stored credential against the
2981
+ # secret engine.
2982
+ def validate(
2983
+ id,
2984
+ deadline: nil
2985
+ )
2986
+ req = V1::ManagedSecretValidateRequest.new()
2987
+
2988
+ req.id = (id)
2989
+ tries = 0
2990
+ plumbing_response = nil
2991
+ loop do
2992
+ begin
2993
+ plumbing_response = @stub.validate(req, metadata: @parent.get_metadata("ManagedSecrets.Validate", req), deadline: deadline)
2994
+ rescue => exception
2995
+ if (@parent.shouldRetry(tries, exception))
2996
+ tries + +@parent.jitterSleep(tries)
2997
+ next
2998
+ end
2999
+ raise Plumbing::convert_error_to_porcelain(exception)
3000
+ end
3001
+ break
3002
+ end
3003
+
3004
+ resp = ManagedSecretValidateResponse.new()
3005
+ resp.invalid_info = (plumbing_response.invalid_info)
3006
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
3007
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
3008
+ resp.valid = (plumbing_response.valid)
3009
+ resp
3010
+ end
3011
+
3012
+ # Logs returns the audit records for the managed secret. This may be replaced
3013
+ # in the future.
3014
+ def logs(
3015
+ filter,
3016
+ *args,
3017
+ deadline: nil
3018
+ )
3019
+ req = V1::ManagedSecretLogsRequest.new()
3020
+ req.meta = V1::ListRequestMetadata.new()
3021
+ if @parent.page_limit > 0
3022
+ req.meta.limit = @parent.page_limit
3023
+ end
3024
+ if not @parent.snapshot_time.nil?
3025
+ req.meta.snapshot_at = @parent.snapshot_time
3026
+ end
3027
+
3028
+ req.filter = Plumbing::quote_filter_args(filter, *args)
3029
+ resp = Enumerator::Generator.new { |g|
3030
+ tries = 0
3031
+ loop do
3032
+ begin
3033
+ plumbing_response = @stub.logs(req, metadata: @parent.get_metadata("ManagedSecrets.Logs", req), deadline: deadline)
3034
+ rescue => exception
3035
+ if (@parent.shouldRetry(tries, exception))
3036
+ tries + +@parent.jitterSleep(tries)
3037
+ next
3038
+ end
3039
+ raise Plumbing::convert_error_to_porcelain(exception)
3040
+ end
3041
+ tries = 0
3042
+ plumbing_response.managed_secret_logs.each do |plumbing_item|
3043
+ g.yield Plumbing::convert_managed_secret_log_to_porcelain(plumbing_item)
3044
+ end
3045
+ break if plumbing_response.meta.next_cursor == ""
3046
+ req.meta.cursor = plumbing_response.meta.next_cursor
3047
+ end
3048
+ }
3049
+ resp
3050
+ end
3051
+ end
3052
+
2702
3053
  # Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
2703
3054
  # - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
2704
3055
  # - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
@@ -5706,6 +6057,311 @@ module SDM #:nodoc:
5706
6057
  end
5707
6058
  end
5708
6059
 
6060
+ #
6061
+ # See:
6062
+ # {ActiveDirectoryEngine}
6063
+ # {KeyValueEngine}
6064
+ class SecretEngines
6065
+ extend Gem::Deprecate
6066
+
6067
+ def initialize(channel, parent)
6068
+ begin
6069
+ @stub = V1::SecretEngines::Stub.new(nil, nil, channel_override: channel)
6070
+ rescue => exception
6071
+ raise Plumbing::convert_error_to_porcelain(exception)
6072
+ end
6073
+ @parent = parent
6074
+ end
6075
+
6076
+ # List returns a list of Secret Engines
6077
+ def list(
6078
+ filter,
6079
+ *args,
6080
+ deadline: nil
6081
+ )
6082
+ req = V1::SecretEngineListRequest.new()
6083
+ req.meta = V1::ListRequestMetadata.new()
6084
+ if @parent.page_limit > 0
6085
+ req.meta.limit = @parent.page_limit
6086
+ end
6087
+ if not @parent.snapshot_time.nil?
6088
+ req.meta.snapshot_at = @parent.snapshot_time
6089
+ end
6090
+
6091
+ req.filter = Plumbing::quote_filter_args(filter, *args)
6092
+ resp = Enumerator::Generator.new { |g|
6093
+ tries = 0
6094
+ loop do
6095
+ begin
6096
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretEngines.List", req), deadline: deadline)
6097
+ rescue => exception
6098
+ if (@parent.shouldRetry(tries, exception))
6099
+ tries + +@parent.jitterSleep(tries)
6100
+ next
6101
+ end
6102
+ raise Plumbing::convert_error_to_porcelain(exception)
6103
+ end
6104
+ tries = 0
6105
+ plumbing_response.secret_engines.each do |plumbing_item|
6106
+ g.yield Plumbing::convert_secret_engine_to_porcelain(plumbing_item)
6107
+ end
6108
+ break if plumbing_response.meta.next_cursor == ""
6109
+ req.meta.cursor = plumbing_response.meta.next_cursor
6110
+ end
6111
+ }
6112
+ resp
6113
+ end
6114
+
6115
+ # Get returns a secret engine details
6116
+ def get(
6117
+ id,
6118
+ deadline: nil
6119
+ )
6120
+ req = V1::SecretEngineGetRequest.new()
6121
+ if not @parent.snapshot_time.nil?
6122
+ req.meta = V1::GetRequestMetadata.new()
6123
+ req.meta.snapshot_at = @parent.snapshot_time
6124
+ end
6125
+
6126
+ req.id = (id)
6127
+ tries = 0
6128
+ plumbing_response = nil
6129
+ loop do
6130
+ begin
6131
+ plumbing_response = @stub.get(req, metadata: @parent.get_metadata("SecretEngines.Get", req), deadline: deadline)
6132
+ rescue => exception
6133
+ if (@parent.shouldRetry(tries, exception))
6134
+ tries + +@parent.jitterSleep(tries)
6135
+ next
6136
+ end
6137
+ raise Plumbing::convert_error_to_porcelain(exception)
6138
+ end
6139
+ break
6140
+ end
6141
+
6142
+ resp = SecretEngineGetResponse.new()
6143
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
6144
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6145
+ resp.secret_engine = Plumbing::convert_secret_engine_to_porcelain(plumbing_response.secret_engine)
6146
+ resp
6147
+ end
6148
+
6149
+ # Create creates a secret engine
6150
+ def create(
6151
+ secret_engine,
6152
+ deadline: nil
6153
+ )
6154
+ req = V1::SecretEngineCreateRequest.new()
6155
+
6156
+ req.secret_engine = Plumbing::convert_secret_engine_to_plumbing(secret_engine)
6157
+ tries = 0
6158
+ plumbing_response = nil
6159
+ loop do
6160
+ begin
6161
+ plumbing_response = @stub.create(req, metadata: @parent.get_metadata("SecretEngines.Create", req), deadline: deadline)
6162
+ rescue => exception
6163
+ if (@parent.shouldRetry(tries, exception))
6164
+ tries + +@parent.jitterSleep(tries)
6165
+ next
6166
+ end
6167
+ raise Plumbing::convert_error_to_porcelain(exception)
6168
+ end
6169
+ break
6170
+ end
6171
+
6172
+ resp = SecretEngineCreateResponse.new()
6173
+ resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
6174
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6175
+ resp.secret_engine = Plumbing::convert_secret_engine_to_porcelain(plumbing_response.secret_engine)
6176
+ resp
6177
+ end
6178
+
6179
+ # Update updates a secret engine
6180
+ def update(
6181
+ secret_engine,
6182
+ deadline: nil
6183
+ )
6184
+ req = V1::SecretEngineUpdateRequest.new()
6185
+
6186
+ req.secret_engine = Plumbing::convert_secret_engine_to_plumbing(secret_engine)
6187
+ tries = 0
6188
+ plumbing_response = nil
6189
+ loop do
6190
+ begin
6191
+ plumbing_response = @stub.update(req, metadata: @parent.get_metadata("SecretEngines.Update", req), deadline: deadline)
6192
+ rescue => exception
6193
+ if (@parent.shouldRetry(tries, exception))
6194
+ tries + +@parent.jitterSleep(tries)
6195
+ next
6196
+ end
6197
+ raise Plumbing::convert_error_to_porcelain(exception)
6198
+ end
6199
+ break
6200
+ end
6201
+
6202
+ resp = SecretEngineUpdateResponse.new()
6203
+ resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
6204
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6205
+ resp.secret_engine = Plumbing::convert_secret_engine_to_porcelain(plumbing_response.secret_engine)
6206
+ resp
6207
+ end
6208
+
6209
+ # Delete deletes a secret engine
6210
+ def delete(
6211
+ id,
6212
+ deadline: nil
6213
+ )
6214
+ req = V1::SecretEngineDeleteRequest.new()
6215
+
6216
+ req.id = (id)
6217
+ tries = 0
6218
+ plumbing_response = nil
6219
+ loop do
6220
+ begin
6221
+ plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("SecretEngines.Delete", req), deadline: deadline)
6222
+ rescue => exception
6223
+ if (@parent.shouldRetry(tries, exception))
6224
+ tries + +@parent.jitterSleep(tries)
6225
+ next
6226
+ end
6227
+ raise Plumbing::convert_error_to_porcelain(exception)
6228
+ end
6229
+ break
6230
+ end
6231
+
6232
+ resp = SecretEngineDeleteResponse.new()
6233
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6234
+ resp
6235
+ end
6236
+
6237
+ # ListSecretStores returns a list of Secret Stores that can be used as a backing store
6238
+ # for Secret Engine
6239
+ def list_secret_stores(
6240
+ filter,
6241
+ *args,
6242
+ deadline: nil
6243
+ )
6244
+ req = V1::SecretStoreListRequest.new()
6245
+ req.meta = V1::ListRequestMetadata.new()
6246
+ if @parent.page_limit > 0
6247
+ req.meta.limit = @parent.page_limit
6248
+ end
6249
+ if not @parent.snapshot_time.nil?
6250
+ req.meta.snapshot_at = @parent.snapshot_time
6251
+ end
6252
+
6253
+ req.filter = Plumbing::quote_filter_args(filter, *args)
6254
+ resp = Enumerator::Generator.new { |g|
6255
+ tries = 0
6256
+ loop do
6257
+ begin
6258
+ plumbing_response = @stub.list_secret_stores(req, metadata: @parent.get_metadata("SecretEngines.ListSecretStores", req), deadline: deadline)
6259
+ rescue => exception
6260
+ if (@parent.shouldRetry(tries, exception))
6261
+ tries + +@parent.jitterSleep(tries)
6262
+ next
6263
+ end
6264
+ raise Plumbing::convert_error_to_porcelain(exception)
6265
+ end
6266
+ tries = 0
6267
+ plumbing_response.secret_stores.each do |plumbing_item|
6268
+ g.yield Plumbing::convert_secret_store_to_porcelain(plumbing_item)
6269
+ end
6270
+ break if plumbing_response.meta.next_cursor == ""
6271
+ req.meta.cursor = plumbing_response.meta.next_cursor
6272
+ end
6273
+ }
6274
+ resp
6275
+ end
6276
+
6277
+ # GenerateKeys generates a private key, stores it in a secret store and stores a public key in a secret engine
6278
+ def generate_keys(
6279
+ secret_engine_id,
6280
+ deadline: nil
6281
+ )
6282
+ req = V1::GenerateKeysRequest.new()
6283
+
6284
+ req.secret_engine_id = (secret_engine_id)
6285
+ tries = 0
6286
+ plumbing_response = nil
6287
+ loop do
6288
+ begin
6289
+ plumbing_response = @stub.generate_keys(req, metadata: @parent.get_metadata("SecretEngines.GenerateKeys", req), deadline: deadline)
6290
+ rescue => exception
6291
+ if (@parent.shouldRetry(tries, exception))
6292
+ tries + +@parent.jitterSleep(tries)
6293
+ next
6294
+ end
6295
+ raise Plumbing::convert_error_to_porcelain(exception)
6296
+ end
6297
+ break
6298
+ end
6299
+
6300
+ resp = GenerateKeysResponse.new()
6301
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6302
+ resp
6303
+ end
6304
+
6305
+ # Healthcheck triggers a healthcheck for all nodes serving a secret engine
6306
+ def healthcheck(
6307
+ secret_engine_id,
6308
+ deadline: nil
6309
+ )
6310
+ req = V1::HealthcheckRequest.new()
6311
+
6312
+ req.secret_engine_id = (secret_engine_id)
6313
+ tries = 0
6314
+ plumbing_response = nil
6315
+ loop do
6316
+ begin
6317
+ plumbing_response = @stub.healthcheck(req, metadata: @parent.get_metadata("SecretEngines.Healthcheck", req), deadline: deadline)
6318
+ rescue => exception
6319
+ if (@parent.shouldRetry(tries, exception))
6320
+ tries + +@parent.jitterSleep(tries)
6321
+ next
6322
+ end
6323
+ raise Plumbing::convert_error_to_porcelain(exception)
6324
+ end
6325
+ break
6326
+ end
6327
+
6328
+ resp = HealthcheckResponse.new()
6329
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6330
+ resp.status = Plumbing::convert_repeated_healthcheck_status_to_porcelain(plumbing_response.status)
6331
+ resp
6332
+ end
6333
+
6334
+ # Rotate rotates secret engine's credentials
6335
+ def rotate(
6336
+ id,
6337
+ password_policy,
6338
+ deadline: nil
6339
+ )
6340
+ req = V1::SecretEngineRotateRequest.new()
6341
+
6342
+ req.id = (id)
6343
+ req.password_policy = Plumbing::convert_secret_engine_password_policy_to_plumbing(password_policy)
6344
+ tries = 0
6345
+ plumbing_response = nil
6346
+ loop do
6347
+ begin
6348
+ plumbing_response = @stub.rotate(req, metadata: @parent.get_metadata("SecretEngines.Rotate", req), deadline: deadline)
6349
+ rescue => exception
6350
+ if (@parent.shouldRetry(tries, exception))
6351
+ tries + +@parent.jitterSleep(tries)
6352
+ next
6353
+ end
6354
+ raise Plumbing::convert_error_to_porcelain(exception)
6355
+ end
6356
+ break
6357
+ end
6358
+
6359
+ resp = SecretEngineRotateResponse.new()
6360
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
6361
+ resp
6362
+ end
6363
+ end
6364
+
5709
6365
  # SecretStoreHealths exposes health states for secret stores.
5710
6366
  #
5711
6367
  # See {SecretStoreHealth}.
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "13.11.0"
16
+ VERSION = "13.12.0"
17
17
  end
data/lib/version.rb CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "13.11.0"
16
+ VERSION = "13.12.0"
17
17
  end