Class: Oktakit::Client

Inherits:
Object
  • Object
show all
Includes:
AdminRoles, Apps, Events, Factors, Groups, IdentityProviders, Schemas, Templates, Users
Defined in:
lib/oktakit/client.rb,
lib/oktakit/client/apps.rb,
lib/oktakit/client/users.rb,
lib/oktakit/client/events.rb,
lib/oktakit/client/groups.rb,
lib/oktakit/client/factors.rb,
lib/oktakit/client/schemas.rb,
lib/oktakit/client/templates.rb,
lib/oktakit/client/admin_roles.rb,
lib/oktakit/client/identity_providers.rb

Defined Under Namespace

Modules: AdminRoles, Apps, Events, Factors, Groups, IdentityProviders, Schemas, Templates, Users

Constant Summary collapse

RACK_BUILDER_CLASS =

In Faraday 0.9, Faraday::Builder was renamed to Faraday::RackBuilder

defined?(Faraday::RackBuilder) ? Faraday::RackBuilder : Faraday::Builder
MIDDLEWARE =

Default Faraday middleware stack

RACK_BUILDER_CLASS.new do |builder|
  builder.use Oktakit::Response::RaiseError
  builder.adapter Faraday.default_adapter
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Users

#activate_user, #change_password, #change_recovery_question, #create_user, #deactivate_user, #expire_password, #forgot_password, #get_assigned_app_links, #get_member_groups, #get_user, #list_users, #reset_factors, #reset_password, #suspend_user, #unlock_user, #unsuspend_user, #update_profile, #update_user

Methods included from Templates

#add_sms_template, #get_sms_template, #list_sms_templates, #partial_sms_template_update, #remove_sms_template, #update_sms_template

Methods included from Schemas

#add_property_to_user_profile_schema, #get_user_schema, #remove_property_from_user_profile_schema, #update_user_profile_schema_property

Methods included from IdentityProviders

#activate_identity_provider, #add_identity_provider, #add_x509_certificate_public_key, #deactivate_identity_provider, #delete_identity_provider, #delete_key, #get_identity_provider, #get_identity_provider_transaction, #get_key, #get_source_idp_user_for_idp_transaction, #get_target_user_for_idp_provision_transaction, #link_idp_user, #list_identity_providers, #list_keys, #list_users_for_idp_link_transaction, #provision_idp_user, #update_identity_provider

Methods included from Groups

#add_group, #add_user_to_group, #get_group, #list_assigned_applications, #list_group_members, #list_groups, #remove_group, #remove_user_from_group, #update_group

Methods included from Factors

#activate_factor, #enroll_factor, #get_factor, #list_enrolled_factors, #list_factors_to_enroll, #list_security_questions, #poll_for_verify_transaction_completion, #reset_factor, #verify_push_factor, #verify_security_question_factor, #verify_sms_factor, #verify_token_factor, #verify_totp_factor

Methods included from Events

#list_events

Methods included from Apps

#activate_application, #add_application, #assign_group_to_application, #assign_user_to_application_for_sso, #assign_user_to_application_for_sso_provisioning, #deactivate_application, #delete_application, #generate_new_application_key_credential, #get_application, #get_assigned_group_for_application, #get_assigned_user_for_application, #get_key_credential_for_application, #list_applications, #list_groups_assigned_to_application, #list_key_credentials_for_application, #list_users_assigned_to_application, #preview_saml_metadata_for_application, #remove_group_from_application, #remove_user_from_application, #update_application, #update_application_credentials_for_assigned_user, #update_application_profile_for_assigned_user

Methods included from AdminRoles

#add_app_target_to_app_admin_role, #add_group_target_to_user_admin_role, #assign_role_to_user, #list_app_targets_for_app_admin_role, #list_group_targets_for_user_admin_role, #list_roles_assigned_to_user, #remove_app_target_from_app_admin_role, #remove_group_target_from_user_admin_role, #unassign_role_from_user

Constructor Details

#initialize(token:, organization:) ⇒ Client

Returns a new instance of Client.



34
35
36
37
# File 'lib/oktakit/client.rb', line 34

def initialize(token:, organization:)
  @token = token
  @organization = organization
end

Instance Attribute Details

#last_responseObject (readonly)

Returns the value of attribute last_response.



145
146
147
# File 'lib/oktakit/client.rb', line 145

def last_response
  @last_response
end

Instance Method Details

#delete(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP DELETE request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


124
125
126
127
128
# File 'lib/oktakit/client.rb', line 124

def delete(url, options = {})
  request :delete, url, query: options.delete(:query), headers: options.delete(:headers),
                        accept: options.delete(:accept), content_type: options.delete(:content_type),
                        data: options
end

#get(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP GET request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (:paginate) (defaults to: {})
    Boolean

    Optional. If true, will auto-paginate Okta’s API responses.

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/oktakit/client.rb', line 49

def get(url, options = {})
  should_paginate = options.delete(:paginate)
  resp, status, next_page = request :get, url, query: options.delete(:query),
                                               headers: options.delete(:headers),
                                               accept: options.delete(:accept),
                                               content_type: options.delete(:content_type),
                                               paginate: should_paginate, data: options

  # If we should paginate, then automatically traverse all next_pages
  if should_paginate
    all_objs = [resp]
    while next_page && resp = next_page.get
      next_page = resp.rels[:next]
      all_objs << resp.data
    end
    resp = all_objs.flatten
  end

  [resp, status]
end

#head(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP HEAD request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


139
140
141
142
143
# File 'lib/oktakit/client.rb', line 139

def head(url, options = {})
  request :head, url, query: options.delete(:query), headers: options.delete(:headers),
                      accept: options.delete(:accept), content_type: options.delete(:content_type),
                      data: options
end

#patch(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP PATCH request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


109
110
111
112
113
# File 'lib/oktakit/client.rb', line 109

def patch(url, options = {})
  request :patch, url, query: options.delete(:query), headers: options.delete(:headers),
                       accept: options.delete(:accept), content_type: options.delete(:content_type),
                       data: options
end

#post(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP POST request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


79
80
81
82
83
# File 'lib/oktakit/client.rb', line 79

def post(url, options = {})
  request :post, url, query: options.delete(:query), headers: options.delete(:headers),
                      accept: options.delete(:accept), content_type: options.delete(:content_type),
                      data: options
end

#put(url, options = {}) ⇒ Sawyer::Resource

Make a HTTP PUT request

Parameters:

  • url (String)

    The path, relative to #api_endpoint

  • options (:query) (defaults to: {})
    Hash

    Optional. Query params for request

  • options (:headers) (defaults to: {})
    Hash

    Optional. Header params for the request.

  • options (:accept) (defaults to: {})
    String

    Optional. The content type to accept. Default application/json

  • options (:content_type) (defaults to: {})
    String

    Optional. The content type for the request. Default application/json

  • options (Hash) (defaults to: {})

    Optional. Body params for request.

Returns:

  • (Sawyer::Resource)


94
95
96
97
98
# File 'lib/oktakit/client.rb', line 94

def put(url, options = {})
  request :put, url, query: options.delete(:query), headers: options.delete(:headers),
                     accept: options.delete(:accept), content_type: options.delete(:content_type),
                     data: options
end