Class: Privy::Resources::Policies

Inherits:
Object
  • Object
show all
Defined in:
lib/privy/resources/policies.rb

Overview

Operations related to policies

Direct Known Subclasses

Services::Policies

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Policies

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Policies.

Parameters:



298
299
300
# File 'lib/privy/resources/policies.rb', line 298

def initialize(client:)
  @client = client
end

Instance Method Details

#create(chain_type:, name:, rules:, version:, owner: nil, owner_id: nil, privy_idempotency_key: nil, request_options: {}) ⇒ Privy::Models::Policy

Some parameter documentations has been truncated, see Models::PolicyCreateParams for more details.

Create a new policy.

Parameters:

Returns:

See Also:



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/privy/resources/policies.rb', line 33

def create(params)
  parsed, options = Privy::PolicyCreateParams.dump_request(params)
  header_params = {privy_idempotency_key: "privy-idempotency-key"}
  @client.request(
    method: :post,
    path: "v1/policies",
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Privy::Policy,
    options: options
  )
end

#create_rule(policy_id, action:, conditions:, method_:, name:, privy_authorization_signature: nil, privy_request_expiry: nil, request_options: {}) ⇒ Privy::Models::PolicyRuleResponse

Some parameter documentations has been truncated, see Models::PolicyCreateRuleParams for more details.

Create a new rule for a policy.

Parameters:

Returns:

See Also:



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/privy/resources/policies.rb', line 147

def create_rule(policy_id, params)
  parsed, options = Privy::PolicyCreateRuleParams.dump_request(params)
  header_params =
    {
      privy_authorization_signature: "privy-authorization-signature",
      privy_request_expiry: "privy-request-expiry"
    }
  @client.request(
    method: :post,
    path: ["v1/policies/%1$s/rules", policy_id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Privy::PolicyRuleResponse,
    options: options
  )
end

#delete(policy_id, privy_authorization_signature: nil, privy_request_expiry: nil, request_options: {}) ⇒ Privy::Models::SuccessResponse

Some parameter documentations has been truncated, see Models::PolicyDeleteParams for more details.

Delete a policy by policy ID.

Parameters:

  • policy_id (String)
  • privy_authorization_signature (String)

    Request authorization signature. If multiple signatures are required, they shoul

  • privy_request_expiry (String)

    Request expiry. Value is a Unix timestamp in milliseconds representing the deadl

  • request_options (Privy::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/privy/resources/policies.rb', line 107

def delete(policy_id, params = {})
  parsed, options = Privy::PolicyDeleteParams.dump_request(params)
  @client.request(
    method: :delete,
    path: ["v1/policies/%1$s", policy_id],
    headers: parsed.transform_keys(
      privy_authorization_signature: "privy-authorization-signature",
      privy_request_expiry: "privy-request-expiry"
    ),
    model: Privy::SuccessResponse,
    options: options
  )
end

#delete_rule(rule_id, policy_id:, privy_authorization_signature: nil, privy_request_expiry: nil, request_options: {}) ⇒ Privy::Models::SuccessResponse

Some parameter documentations has been truncated, see Models::PolicyDeleteRuleParams for more details.

Delete a rule by policy ID and rule ID.

Parameters:

  • rule_id (String)

    Path param

  • policy_id (String)

    Path param

  • privy_authorization_signature (String)

    Header param: Request authorization signature. If multiple signatures are requir

  • privy_request_expiry (String)

    Header param: Request expiry. Value is a Unix timestamp in milliseconds represen

  • request_options (Privy::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# File 'lib/privy/resources/policies.rb', line 184

def delete_rule(rule_id, params)
  parsed, options = Privy::PolicyDeleteRuleParams.dump_request(params)
  policy_id =
    parsed.delete(:policy_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :delete,
    path: ["v1/policies/%1$s/rules/%2$s", policy_id, rule_id],
    headers: parsed.transform_keys(
      privy_authorization_signature: "privy-authorization-signature",
      privy_request_expiry: "privy-request-expiry"
    ),
    model: Privy::SuccessResponse,
    options: options
  )
end

#get(policy_id, request_options: {}) ⇒ Privy::Models::Policy

Get a policy by policy ID.

Parameters:

Returns:

See Also:



212
213
214
215
216
217
218
219
# File 'lib/privy/resources/policies.rb', line 212

def get(policy_id, params = {})
  @client.request(
    method: :get,
    path: ["v1/policies/%1$s", policy_id],
    model: Privy::Policy,
    options: params[:request_options]
  )
end

#get_rule(rule_id, policy_id:, request_options: {}) ⇒ Privy::Models::PolicyRuleResponse

Get a rule by policy ID and rule ID.

Parameters:

Returns:

See Also:



232
233
234
235
236
237
238
239
240
241
242
243
244
# File 'lib/privy/resources/policies.rb', line 232

def get_rule(rule_id, params)
  parsed, options = Privy::PolicyGetRuleParams.dump_request(params)
  policy_id =
    parsed.delete(:policy_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["v1/policies/%1$s/rules/%2$s", policy_id, rule_id],
    model: Privy::PolicyRuleResponse,
    options: options
  )
end

#update(policy_id, name: nil, owner: nil, owner_id: nil, rules: nil, privy_authorization_signature: nil, privy_request_expiry: nil, request_options: {}) ⇒ Privy::Models::Policy

Some parameter documentations has been truncated, see Models::PolicyUpdateParams for more details.

Update a policy by policy ID.

Parameters:

  • policy_id (String)

    Path param

  • name (String)

    Body param: Name to assign to policy.

  • owner (Privy::Models::OwnerInputUser, Privy::Models::OwnerInputPublicKey, nil)

    Body param: The owner of the resource, specified as a Privy user ID, a P-256 pub

  • owner_id (String, nil)

    Body param: The key quorum ID to set as the owner of the resource. If you provid

  • rules (Array<Privy::Models::PolicyRuleRequestBody>)

    Body param

  • privy_authorization_signature (String)

    Header param: Request authorization signature. If multiple signatures are requir

  • privy_request_expiry (String)

    Header param: Request expiry. Value is a Unix timestamp in milliseconds represen

  • request_options (Privy::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/privy/resources/policies.rb', line 72

def update(policy_id, params = {})
  parsed, options = Privy::PolicyUpdateParams.dump_request(params)
  header_params =
    {
      privy_authorization_signature: "privy-authorization-signature",
      privy_request_expiry: "privy-request-expiry"
    }
  @client.request(
    method: :patch,
    path: ["v1/policies/%1$s", policy_id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Privy::Policy,
    options: options
  )
end

#update_rule(rule_id, policy_id:, action:, conditions:, method_:, name:, privy_authorization_signature: nil, privy_request_expiry: nil, request_options: {}) ⇒ Privy::Models::PolicyRuleResponse

Some parameter documentations has been truncated, see Models::PolicyUpdateRuleParams for more details.

Update a rule by policy ID and rule ID.

Parameters:

Returns:

See Also:



274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
# File 'lib/privy/resources/policies.rb', line 274

def update_rule(rule_id, params)
  parsed, options = Privy::PolicyUpdateRuleParams.dump_request(params)
  policy_id =
    parsed.delete(:policy_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  header_params =
    {
      privy_authorization_signature: "privy-authorization-signature",
      privy_request_expiry: "privy-request-expiry"
    }
  @client.request(
    method: :patch,
    path: ["v1/policies/%1$s/rules/%2$s", policy_id, rule_id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Privy::PolicyRuleResponse,
    options: options
  )
end