Class: Oktakit::Client
- Inherits:
-
Object
- Object
- Oktakit::Client
- 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
-
#last_response ⇒ Object
readonly
Returns the value of attribute last_response.
Instance Method Summary collapse
- #api_endpoint ⇒ Object
-
#delete(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP DELETE request.
-
#get(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP GET request.
-
#head(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP HEAD request.
-
#initialize(token:, organization: nil, api_endpoint: nil) ⇒ Client
constructor
A new instance of Client.
-
#patch(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PATCH request.
-
#post(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP POST request.
-
#put(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PUT request.
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
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: nil, api_endpoint: nil) ⇒ Client
Returns a new instance of Client.
34 35 36 37 38 39 40 41 42 |
# File 'lib/oktakit/client.rb', line 34 def initialize(token:, organization: nil, api_endpoint: nil) if organization.nil? && api_endpoint.nil? raise ArgumentError, "Please provide either the organization or the api_endpoint argument" end @token = token @organization = organization @api_endpoint = api_endpoint end |
Instance Attribute Details
#last_response ⇒ Object (readonly)
Returns the value of attribute last_response.
165 166 167 |
# File 'lib/oktakit/client.rb', line 165 def last_response @last_response end |
Instance Method Details
#api_endpoint ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/oktakit/client.rb', line 44 def api_endpoint if @api_endpoint @api_endpoint else "https://#{@organization.downcase}.okta.com/api/v1" end end |
#delete(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP DELETE request
144 145 146 147 148 |
# File 'lib/oktakit/client.rb', line 144 def delete(url, = {}) request :delete, url, query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), data: end |
#get(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP GET request
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/oktakit/client.rb', line 62 def get(url, = {}) should_paginate = .delete(:paginate) = { query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), paginate: should_paginate, data: } resp, status, next_page = request :get, url, ** # If request succeeded and we should paginate, then automatically traverse all next_pages if status == 200 && should_paginate all_objs = [resp] while next_page resp, status, next_page = request :get, next_page, ** break unless status == 200 # Return early if page request fails all_objs << resp end resp = all_objs.flatten end [resp, status] end |
#head(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP HEAD request
159 160 161 162 163 |
# File 'lib/oktakit/client.rb', line 159 def head(url, = {}) request :head, url, query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), data: end |
#patch(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PATCH request
129 130 131 132 133 |
# File 'lib/oktakit/client.rb', line 129 def patch(url, = {}) request :patch, url, query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), data: end |
#post(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP POST request
99 100 101 102 103 |
# File 'lib/oktakit/client.rb', line 99 def post(url, = {}) request :post, url, query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), data: end |
#put(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PUT request
114 115 116 117 118 |
# File 'lib/oktakit/client.rb', line 114 def put(url, = {}) request :put, url, query: .delete(:query), headers: .delete(:headers), accept: .delete(:accept), content_type: .delete(:content_type), data: end |