cloudinary-account-provisioning 0.1.0 → 0.2.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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cld_provisioning/custompolicies.rb +4 -4
  3. data/lib/cld_provisioning/models/operations/createcustompolicy_request.rb +5 -5
  4. data/lib/cld_provisioning/models/operations/createcustompolicy_request.rbi +2 -2
  5. data/lib/cld_provisioning/models/operations/createuser_requestbody.rb +14 -3
  6. data/lib/cld_provisioning/models/operations/createuser_requestbody.rbi +6 -0
  7. data/lib/cld_provisioning/models/operations/role.rb +3 -1
  8. data/lib/cld_provisioning/models/operations/updaterole_request.rb +7 -5
  9. data/lib/cld_provisioning/models/operations/updaterole_request.rbi +2 -2
  10. data/lib/cld_provisioning/models/operations/updateuser_request.rb +10 -5
  11. data/lib/cld_provisioning/models/operations/updateuser_request.rbi +2 -2
  12. data/lib/cld_provisioning/models/{shared/userrequest.rb → operations/updateuser_requestbody.rb} +21 -10
  13. data/lib/cld_provisioning/models/{shared/userrequest.rbi → operations/updateuser_requestbody.rbi} +8 -2
  14. data/lib/cld_provisioning/models/{shared/userrequest_role.rb → operations/updateuser_role.rb} +6 -4
  15. data/lib/cld_provisioning/models/operations/updateuser_role.rbi +9 -0
  16. data/lib/cld_provisioning/models/operations.rb +2 -0
  17. data/lib/cld_provisioning/models/shared/{custompolicy.rb → createcustompolicy.rb} +2 -2
  18. data/lib/cld_provisioning/models/shared/{custompolicy.rbi → createcustompolicy.rbi} +2 -2
  19. data/lib/cld_provisioning/models/shared/inspectrequest.rb +2 -2
  20. data/lib/cld_provisioning/models/shared/operation.rb +19 -0
  21. data/lib/cld_provisioning/models/shared/{details.rbi → operation.rbi} +2 -2
  22. data/lib/cld_provisioning/models/shared/permissionserror.rb +2 -2
  23. data/lib/cld_provisioning/models/shared/policy_parameters.rb +20 -5
  24. data/lib/cld_provisioning/models/shared/policy_parameters.rbi +11 -0
  25. data/lib/cld_provisioning/models/shared/principalresponsedata.rb +2 -2
  26. data/lib/cld_provisioning/models/shared/principalrolesdata.rb +2 -2
  27. data/lib/cld_provisioning/models/shared/roleassignment.rb +69 -0
  28. data/lib/cld_provisioning/models/shared/roleassignment.rbi +32 -0
  29. data/lib/cld_provisioning/models/shared/rolemanagementrequest.rb +50 -0
  30. data/lib/cld_provisioning/models/shared/rolemanagementrequest.rbi +20 -0
  31. data/lib/cld_provisioning/models/shared/roletomanage.rb +2 -6
  32. data/lib/cld_provisioning/models/shared/{role.rb → updaterole.rb} +2 -2
  33. data/lib/cld_provisioning/models/shared/{role.rbi → updaterole.rbi} +2 -2
  34. data/lib/cld_provisioning/models/shared/updateroleprincipal.rb +2 -2
  35. data/lib/cld_provisioning/models/shared.rb +5 -15
  36. data/lib/cld_provisioning/roles.rb +4 -4
  37. data/lib/cld_provisioning/sdkconfiguration.rb +4 -4
  38. data/lib/cld_provisioning/users.rb +4 -4
  39. data/lib/cld_provisioning/utils/retries.rb +43 -1
  40. data/lib/cld_provisioning/utils/utils.rb +6 -2
  41. data/lib/cloudinary-account-provisioning.rb +7 -0
  42. metadata +29 -24
  43. data/lib/cld_provisioning/models/shared/details.rb +0 -26
  44. data/lib/cld_provisioning/models/shared/inspectrequest_policy_parameters.rb +0 -26
  45. data/lib/cld_provisioning/models/shared/inspectrequest_policy_parameters.rbi +0 -9
  46. data/lib/cld_provisioning/models/shared/principalresponsedata_policy_parameters.rb +0 -26
  47. data/lib/cld_provisioning/models/shared/principalresponsedata_policy_parameters.rbi +0 -9
  48. data/lib/cld_provisioning/models/shared/roletomanage_policy_parameters.rb +0 -26
  49. data/lib/cld_provisioning/models/shared/roletomanage_policy_parameters.rbi +0 -9
  50. data/lib/cld_provisioning/models/shared/updateroleprincipal_policy_parameters.rb +0 -26
  51. data/lib/cld_provisioning/models/shared/updateroleprincipal_policy_parameters.rbi +0 -9
  52. data/lib/cld_provisioning/models/shared/userrequest_role.rbi +0 -9
@@ -0,0 +1,69 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: bd3089d02246
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ module CldProvisioning
8
+ module Models
9
+ module Shared
10
+ # A role assignment with optional scope and policy parameters.
11
+ class RoleAssignment
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The role ID.
16
+ field :id, ::String, {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("id"), required: true}}
17
+ # The scope (product environment) ID the role applies to.
18
+ field(
19
+ :scope_id,
20
+ Crystalline::Nilable.new(::String),
21
+ {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("scope_id")}}
22
+ )
23
+ # Optional content-scope policy parameters.
24
+ field(
25
+ :policy_parameters,
26
+ Crystalline::Nilable.new(Models::Shared::PolicyParameters),
27
+ {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("policy_parameters")}}
28
+ )
29
+
30
+ field(
31
+ :additional_properties,
32
+ Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)),
33
+ {
34
+ 'format_json': {
35
+ 'letter_case': ::CldProvisioning::Utils.field_name("additional_properties"),
36
+ 'additional_properties': true
37
+ }
38
+ }
39
+ )
40
+
41
+ sig {
42
+ params(
43
+ id: ::String,
44
+ scope_id: T.nilable(::String),
45
+ policy_parameters: T.nilable(Models::Shared::PolicyParameters),
46
+ additional_properties: T.nilable(T::Hash[Symbol, ::Object])
47
+ )
48
+ .void
49
+ }
50
+ def initialize(id:, scope_id: nil, policy_parameters: nil, additional_properties: nil)
51
+ @id = id
52
+ @scope_id = scope_id
53
+ @policy_parameters = policy_parameters
54
+ @additional_properties = additional_properties
55
+ end
56
+
57
+ sig { params(other: T.untyped).returns(T::Boolean) }
58
+ def ==(other)
59
+ return false unless other.is_a?(self.class)
60
+ return false unless @id == other.id
61
+ return false unless @scope_id == other.scope_id
62
+ return false unless @policy_parameters == other.policy_parameters
63
+ return false unless @additional_properties == other.additional_properties
64
+ true
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,32 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class CldProvisioning::Models::Shared::RoleAssignment
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class CldProvisioning::Models::Shared::RoleAssignment
9
+ def id
10
+ end
11
+
12
+ def id=(str_)
13
+ end
14
+
15
+ def scope_id
16
+ end
17
+
18
+ def scope_id=(str_)
19
+ end
20
+
21
+ def policy_parameters
22
+ end
23
+
24
+ def policy_parameters=(str_)
25
+ end
26
+
27
+ def additional_properties
28
+ end
29
+
30
+ def additional_properties=(str_)
31
+ end
32
+ end
@@ -0,0 +1,50 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: d09cd3105e80
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ module CldProvisioning
8
+ module Models
9
+ module Shared
10
+ # A role management operation and the roles it applies to.
11
+ class RoleManagementRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether to add or remove the listed roles.
16
+ field(
17
+ :operation,
18
+ Models::Shared::Operation,
19
+ {
20
+ 'format_json': {
21
+ 'letter_case': ::CldProvisioning::Utils.field_name("operation"),
22
+ required: true,
23
+ 'decoder': ::CldProvisioning::Utils.enum_from_string(Models::Shared::Operation, false)
24
+ }
25
+ }
26
+ )
27
+ # The roles to add or remove.
28
+ field(
29
+ :roles,
30
+ Crystalline::Array.new(Models::Shared::RoleAssignment),
31
+ {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("roles"), required: true}}
32
+ )
33
+
34
+ sig { params(operation: Models::Shared::Operation, roles: T::Array[Models::Shared::RoleAssignment]).void }
35
+ def initialize(operation:, roles:)
36
+ @operation = operation
37
+ @roles = roles
38
+ end
39
+
40
+ sig { params(other: T.untyped).returns(T::Boolean) }
41
+ def ==(other)
42
+ return false unless other.is_a?(self.class)
43
+ return false unless @operation == other.operation
44
+ return false unless @roles == other.roles
45
+ true
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class CldProvisioning::Models::Shared::RoleManagementRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class CldProvisioning::Models::Shared::RoleManagementRequest
9
+ def operation
10
+ end
11
+
12
+ def operation=(str_)
13
+ end
14
+
15
+ def roles
16
+ end
17
+
18
+ def roles=(str_)
19
+ end
20
+ end
@@ -23,16 +23,12 @@ module CldProvisioning
23
23
  # Defines the content instance that the role applies to. Specify the content type (`folder_id` or `collection_id`) and its corresponding ID. For example, `{"folder_id":"asdfjkl12347890"}`. This specification is passed to the `policy_statement` (Cedar).
24
24
  field(
25
25
  :policy_parameters,
26
- Crystalline::Nilable.new(Models::Shared::RoleToManagePolicyParameters),
26
+ Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)),
27
27
  {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("policy_parameters")}}
28
28
  )
29
29
 
30
30
  sig {
31
- params(
32
- id: ::String,
33
- scope_id: T.nilable(::String),
34
- policy_parameters: T.nilable(Models::Shared::RoleToManagePolicyParameters)
35
- )
31
+ params(id: ::String, scope_id: T.nilable(::String), policy_parameters: T.nilable(T::Hash[Symbol, ::Object]))
36
32
  .void
37
33
  }
38
34
  def initialize(id:, scope_id: nil, policy_parameters: nil)
@@ -1,5 +1,5 @@
1
1
  # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
- # @generated-id: a3dd84d80bd7
2
+ # @generated-id: a4f95b122c68
3
3
 
4
4
  # typed: true
5
5
  # frozen_string_literal: true
@@ -8,7 +8,7 @@ module CldProvisioning
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Role
11
+ class UpdateRole
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -1,11 +1,11 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- class CldProvisioning::Models::Shared::Role
4
+ class CldProvisioning::Models::Shared::UpdateRole
5
5
  extend ::Crystalline::MetadataFields::ClassMethods
6
6
  end
7
7
 
8
- class CldProvisioning::Models::Shared::Role
8
+ class CldProvisioning::Models::Shared::UpdateRole
9
9
  def name
10
10
  end
11
11
 
@@ -33,7 +33,7 @@ module CldProvisioning
33
33
  # For roles with `permission_type` set to `content`, provide the ID of the specific folder or collection you want the role to apply to, for example, `{"folder_id":"asdfjkl12347890"}`. This specification is passed to the `policy_statement`, written in Cedar language.
34
34
  field(
35
35
  :policy_parameters,
36
- Crystalline::Nilable.new(Models::Shared::UpdateRolePrincipalPolicyParameters),
36
+ Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)),
37
37
  {'format_json': {'letter_case': ::CldProvisioning::Utils.field_name("policy_parameters")}}
38
38
  )
39
39
  # The ID of a specific product environment where the role is applied. This parameter is only relevant if `scope_type` is "prodenv".
@@ -47,7 +47,7 @@ module CldProvisioning
47
47
  params(
48
48
  principal_type: Models::Shared::PrincipalTypeEnum,
49
49
  principal_id: ::String,
50
- policy_parameters: T.nilable(Models::Shared::UpdateRolePrincipalPolicyParameters),
50
+ policy_parameters: T.nilable(T::Hash[Symbol, ::Object]),
51
51
  scope_id: T.nilable(::String)
52
52
  )
53
53
  .void
@@ -17,26 +17,21 @@ module CldProvisioning
17
17
  autoload :CedarError, "cld_provisioning/models/shared/cedarerror.rb"
18
18
  autoload :CedarSchemaResponse, "cld_provisioning/models/shared/cedarschemaresponse.rb"
19
19
  autoload :CloudAssetTypeBreakdown, "cld_provisioning/models/shared/cloudassettypebreakdown.rb"
20
+ autoload :CreateCustomPolicy, "cld_provisioning/models/shared/createcustompolicy.rb"
20
21
  autoload :CreateRole, "cld_provisioning/models/shared/createrole.rb"
21
22
  autoload :CustomPoliciesResponse, "cld_provisioning/models/shared/custompoliciesresponse.rb"
22
- autoload :CustomPolicy, "cld_provisioning/models/shared/custompolicy.rb"
23
23
  autoload :CustomPolicyResponse, "cld_provisioning/models/shared/custompolicyresponse.rb"
24
24
  autoload :CustomPolicyResponseData, "cld_provisioning/models/shared/custompolicyresponsedata.rb"
25
25
  autoload :EffectivePoliciesResponse, "cld_provisioning/models/shared/effectivepoliciesresponse.rb"
26
26
  autoload :EffectivePolicy, "cld_provisioning/models/shared/effectivepolicy.rb"
27
27
  autoload :EffectiveRole, "cld_provisioning/models/shared/effectiverole.rb"
28
28
  autoload :InspectRequest, "cld_provisioning/models/shared/inspectrequest.rb"
29
- autoload :InspectRequestPolicyParameters, "cld_provisioning/models/shared/inspectrequest_policy_parameters.rb"
30
29
  autoload :ManagementTypeEnum, "cld_provisioning/models/shared/managementtypeenum.rb"
31
30
  autoload :OperationEnum, "cld_provisioning/models/shared/operationenum.rb"
32
31
  autoload :PermissionTypeEnum, "cld_provisioning/models/shared/permissiontypeenum.rb"
33
32
  autoload :PermissionsError, "cld_provisioning/models/shared/permissionserror.rb"
34
33
  autoload :Principal, "cld_provisioning/models/shared/principal.rb"
35
34
  autoload :PrincipalResponseData, "cld_provisioning/models/shared/principalresponsedata.rb"
36
- autoload(
37
- :PrincipalResponseDataPolicyParameters,
38
- "cld_provisioning/models/shared/principalresponsedata_policy_parameters.rb"
39
- )
40
35
  autoload :PrincipalRole, "cld_provisioning/models/shared/principalrole.rb"
41
36
  autoload :PrincipalRolesData, "cld_provisioning/models/shared/principalrolesdata.rb"
42
37
  autoload :PrincipalRolesInspectData, "cld_provisioning/models/shared/principalrolesinspectdata.rb"
@@ -56,12 +51,12 @@ module CldProvisioning
56
51
  "cld_provisioning/models/shared/productenvironmentupdaterequest_custom_attributes.rb"
57
52
  )
58
53
  autoload :ProductEnvironmentsResponse, "cld_provisioning/models/shared/productenvironmentsresponse.rb"
59
- autoload :Role, "cld_provisioning/models/shared/role.rb"
54
+ autoload :RoleAssignment, "cld_provisioning/models/shared/roleassignment.rb"
55
+ autoload :RoleManagementRequest, "cld_provisioning/models/shared/rolemanagementrequest.rb"
60
56
  autoload :RoleResponse, "cld_provisioning/models/shared/roleresponse.rb"
61
57
  autoload :RoleResponseData, "cld_provisioning/models/shared/roleresponsedata.rb"
62
58
  autoload :RoleResponseData1, "cld_provisioning/models/shared/roleresponse_data1.rb"
63
59
  autoload :RoleToManage, "cld_provisioning/models/shared/roletomanage.rb"
64
- autoload :RoleToManagePolicyParameters, "cld_provisioning/models/shared/roletomanage_policy_parameters.rb"
65
60
  autoload :RolesResponse, "cld_provisioning/models/shared/rolesresponse.rb"
66
61
  autoload :ScopeTypeEnum, "cld_provisioning/models/shared/scopetypeenum.rb"
67
62
  autoload :Security, "cld_provisioning/models/shared/security.rb"
@@ -75,11 +70,8 @@ module CldProvisioning
75
70
  )
76
71
  autoload :UpdateCustomPolicy, "cld_provisioning/models/shared/updatecustompolicy.rb"
77
72
  autoload :UpdatePrincipalRolesRequest, "cld_provisioning/models/shared/updateprincipalrolesrequest.rb"
73
+ autoload :UpdateRole, "cld_provisioning/models/shared/updaterole.rb"
78
74
  autoload :UpdateRolePrincipal, "cld_provisioning/models/shared/updateroleprincipal.rb"
79
- autoload(
80
- :UpdateRolePrincipalPolicyParameters,
81
- "cld_provisioning/models/shared/updateroleprincipal_policy_parameters.rb"
82
- )
83
75
  autoload :UpdateRolePrincipalsRequest, "cld_provisioning/models/shared/updateroleprincipalsrequest.rb"
84
76
  autoload :User, "cld_provisioning/models/shared/user.rb"
85
77
  autoload :UserGroup, "cld_provisioning/models/shared/usergroup.rb"
@@ -89,8 +81,6 @@ module CldProvisioning
89
81
  autoload :UserGroupUsersResponse, "cld_provisioning/models/shared/usergroupusersresponse.rb"
90
82
  autoload :UserGroupsListResponse, "cld_provisioning/models/shared/usergroupslistresponse.rb"
91
83
  autoload :UserGroupsResponse, "cld_provisioning/models/shared/usergroupsresponse.rb"
92
- autoload :UserRequest, "cld_provisioning/models/shared/userrequest.rb"
93
- autoload :UserRequestRole, "cld_provisioning/models/shared/userrequest_role.rb"
94
84
  autoload :UserSubAccountsResponse, "cld_provisioning/models/shared/usersubaccountsresponse.rb"
95
85
  autoload :UsersResponse, "cld_provisioning/models/shared/usersresponse.rb"
96
86
  autoload :ValidateCedarPolicyRequest, "cld_provisioning/models/shared/validatecedarpolicyrequest.rb"
@@ -100,11 +90,11 @@ module CldProvisioning
100
90
  autoload :Cycles, "cld_provisioning/models/shared/cycles.rb"
101
91
  autoload :Data, "cld_provisioning/models/shared/data.rb"
102
92
  autoload :DedicatedFor, "cld_provisioning/models/shared/dedicated_for.rb"
103
- autoload :Details, "cld_provisioning/models/shared/details.rb"
104
93
  autoload :EmailPreferences, "cld_provisioning/models/shared/email_preferences.rb"
105
94
  autoload :Error, "cld_provisioning/models/shared/error.rb"
106
95
  autoload :MetricUsage, "cld_provisioning/models/shared/metric_usage.rb"
107
96
  autoload :MonthlyCycles, "cld_provisioning/models/shared/monthly_cycles.rb"
97
+ autoload :Operation, "cld_provisioning/models/shared/operation.rb"
108
98
  autoload :PolicyParameters, "cld_provisioning/models/shared/policy_parameters.rb"
109
99
  end
110
100
  end
@@ -606,14 +606,14 @@ module CldProvisioning
606
606
  sig {
607
607
  params(
608
608
  role_id: ::String,
609
- role: Models::Shared::Role,
609
+ update_role: Models::Shared::UpdateRole,
610
610
  account_id: T.nilable(::String),
611
611
  timeout_ms: T.nilable(Integer),
612
612
  http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
613
613
  )
614
614
  .returns(Models::Shared::RoleResponse)
615
615
  }
616
- def update(role_id:, role:, account_id: nil, timeout_ms: nil, http_headers: nil)
616
+ def update(role_id:, update_role:, account_id: nil, timeout_ms: nil, http_headers: nil)
617
617
  # update - Update custom role
618
618
  # Update a specific custom role by providing all relevant details, including those you want to keep as-is.
619
619
  #
@@ -621,7 +621,7 @@ module CldProvisioning
621
621
  #
622
622
  request = Models::Operations::UpdateRoleRequest.new(
623
623
  role_id: role_id,
624
- role: role,
624
+ update_role: update_role,
625
625
  account_id: account_id
626
626
  )
627
627
  url, params = @sdk_configuration.get_server_details
@@ -635,7 +635,7 @@ module CldProvisioning
635
635
  )
636
636
  headers = {}
637
637
  headers = T.cast(headers, T::Hash[String, String])
638
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :role, :json)
638
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :update_role, :json)
639
639
  headers["content-type"] = req_content_type
640
640
  raise StandardError, "request body is required" if data.nil? && form.nil?
641
641
 
@@ -117,10 +117,10 @@ module CldProvisioning
117
117
 
118
118
  @globals = globals.nil? ? {} : globals
119
119
  @language = "ruby"
120
- @openapi_doc_version = "0.2.1"
121
- @sdk_version = "0.1.0"
122
- @gen_version = "2.881.17"
123
- @user_agent = "speakeasy-sdk/ruby 0.1.0 2.881.17 0.2.1 cloudinary-account-provisioning"
120
+ @openapi_doc_version = "0.2.2"
121
+ @sdk_version = "0.2.0"
122
+ @gen_version = "2.954.8"
123
+ @user_agent = "speakeasy-sdk/ruby 0.2.0 2.954.8 0.2.2 cloudinary-account-provisioning"
124
124
  end
125
125
 
126
126
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -562,20 +562,20 @@ module CldProvisioning
562
562
  sig {
563
563
  params(
564
564
  user_id: ::String,
565
- user_request: Models::Shared::UserRequest,
565
+ request_body: Models::Operations::UpdateUserRequestBody,
566
566
  account_id: T.nilable(::String),
567
567
  timeout_ms: T.nilable(Integer),
568
568
  http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
569
569
  )
570
570
  .returns(Models::Shared::User)
571
571
  }
572
- def update(user_id:, user_request:, account_id: nil, timeout_ms: nil, http_headers: nil)
572
+ def update(user_id:, request_body:, account_id: nil, timeout_ms: nil, http_headers: nil)
573
573
  # update - Update user
574
574
  # Update the details of a user.
575
575
  # https://cloudinary.com/documentation/provisioning_api#update_user - Learn more about updating a specific user.
576
576
  request = Models::Operations::UpdateUserRequest.new(
577
577
  user_id: user_id,
578
- user_request: user_request,
578
+ request_body: request_body,
579
579
  account_id: account_id
580
580
  )
581
581
  url, params = @sdk_configuration.get_server_details
@@ -589,7 +589,7 @@ module CldProvisioning
589
589
  )
590
590
  headers = {}
591
591
  headers = T.cast(headers, T::Hash[String, String])
592
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :user_request, :json)
592
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request_body, :json)
593
593
  headers["content-type"] = req_content_type
594
594
  raise StandardError, "request body is required" if data.nil? && form.nil?
595
595
 
@@ -5,6 +5,7 @@
5
5
  # frozen_string_literal: true
6
6
 
7
7
  require "faraday/retry"
8
+ require "time"
8
9
  require "sorbet-runtime"
9
10
 
10
11
  module CldProvisioning
@@ -83,16 +84,57 @@ module CldProvisioning
83
84
  if @strategy == "backoff" && @backoff
84
85
  retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
85
86
  retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
86
- retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
87
+ retry_options[:max_interval] = (@backoff.max_interval.to_f / 1000) unless @backoff.max_interval.nil?
87
88
 
88
89
  unless @backoff.max_elapsed_time.nil?
89
90
  stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
90
91
  retry_options[:retry_if] = -> (_env, _exc) { Time.now < stop_time }
91
92
  end
93
+
92
94
  end
93
95
 
94
96
  retry_options
95
97
  end
96
98
  end
99
+
100
+ class RetryMiddleware < Faraday::Retry::Middleware
101
+ extend T::Sig
102
+
103
+ sig { params(retries: T.untyped, env: T.untyped).returns(T.untyped) }
104
+ def calculate_sleep_amount(retries, env)
105
+ retry_after = [calculate_retry_after(env), calculate_rate_limit_reset(env)].compact.max
106
+ retry_interval = calculate_retry_interval(retries)
107
+ return retry_interval if retry_after.nil?
108
+
109
+ # unlike the stock middleware, cap server delays at max_interval rather
110
+ # than abandoning the retry
111
+ [[retry_after, @options.max_interval].min, retry_interval].max
112
+ end
113
+
114
+ private
115
+
116
+ sig { params(env: T.untyped).returns(T.untyped) }
117
+ def calculate_retry_after(env)
118
+ response_headers = env[:response_headers]
119
+ return unless response_headers
120
+
121
+ ms_value = response_headers["retry-after-ms"]
122
+ return ms_value.to_f / 1000 if ms_value&.match?(/\A\s*\d+\s*\z/)
123
+
124
+ value = response_headers["retry-after"]
125
+ return if value.nil? || value.strip.empty?
126
+ return value.to_f if value.match?(/\A\s*\d+\s*\z/)
127
+
128
+ begin
129
+ Time.httpdate(value) - Time.now
130
+ rescue ArgumentError
131
+ begin
132
+ Time.iso8601(value) - Time.now
133
+ rescue ArgumentError
134
+ nil
135
+ end
136
+ end
137
+ end
138
+ end
97
139
  end
98
140
  end
@@ -81,11 +81,15 @@ module CldProvisioning
81
81
 
82
82
  sig { params(content_type: String, pattern: String).returns(T::Boolean) }
83
83
  def self.match_content_type(content_type, pattern)
84
- return true if content_type == pattern || ["*", "*/*"].include?(pattern)
84
+ return true if ["*", "*/*"].include?(pattern)
85
+
86
+ # Media types are case-insensitive (RFC 9110 section 8.3.1).
87
+ pattern = pattern.strip.downcase
88
+ return true if content_type.strip.downcase == pattern
85
89
 
86
90
  pieces = content_type.split(";")
87
91
  pieces.each do |piece|
88
- return true if pattern == piece.strip
92
+ return true if pattern == piece.strip.downcase
89
93
  end
90
94
 
91
95
  false
@@ -0,0 +1,7 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: 5425f0d7d177
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require_relative "cloudinary_account_provisioning"