Module: Descope::Api::V1::Management::Tenant

Includes:
Common, Mixins::Validation
Included in:
Descope::Api::V1::Management
Defined in:
lib/descope/api/v1/management/tenant.rb

Overview

Management API calls

Constant Summary

Constants included from Common

Common::ACCESS_KEYS_SEARCH_PATH, Common::ACCESS_KEY_ACTIVATE_PATH, Common::ACCESS_KEY_CREATE_PATH, Common::ACCESS_KEY_DEACTIVATE_PATH, Common::ACCESS_KEY_DELETE_PATH, Common::ACCESS_KEY_LOAD_PATH, Common::ACCESS_KEY_UPDATE_PATH, Common::AUDIT_CREATE_EVENT, Common::AUDIT_SEARCH, Common::AUTHZ_NS_DELETE, Common::AUTHZ_NS_SAVE, Common::AUTHZ_RD_DELETE, Common::AUTHZ_RD_SAVE, Common::AUTHZ_RE_CREATE, Common::AUTHZ_RE_DELETE, Common::AUTHZ_RE_DELETE_RESOURCES, Common::AUTHZ_RE_HAS_RELATIONS, Common::AUTHZ_RE_RESOURCE, Common::AUTHZ_RE_TARGETS, Common::AUTHZ_RE_TARGET_ALL, Common::AUTHZ_RE_WHO, Common::AUTHZ_SCHEMA_DELETE, Common::AUTHZ_SCHEMA_LOAD, Common::AUTHZ_SCHEMA_SAVE, Common::FLOW_EXPORT_PATH, Common::FLOW_IMPORT_PATH, Common::FLOW_LIST_PATH, Common::GROUP_LOAD_ALL_FOR_MEMBER_PATH, Common::GROUP_LOAD_ALL_GROUP_MEMBERS_PATH, Common::GROUP_LOAD_ALL_PATH, Common::PASSWORD_SETTINGS_PATH, Common::PERMISSION_CREATE_PATH, Common::PERMISSION_DELETE_PATH, Common::PERMISSION_LOAD_ALL_PATH, Common::PERMISSION_UPDATE_PATH, Common::PROJECT_CLONE, Common::PROJECT_DELETE_PATH, Common::PROJECT_EXPORT_PATH, Common::PROJECT_IMPORT_PATH, Common::PROJECT_UPDATE_NAME, Common::ROLE_CREATE_PATH, Common::ROLE_DELETE_PATH, Common::ROLE_LOAD_ALL_PATH, Common::ROLE_SEARCH_PATH, Common::ROLE_UPDATE_PATH, Common::SCIM_GROUPS_PATH, Common::SCIM_RESOURCE_TYPES_PATH, Common::SCIM_SERVICE_PROVIDER_CONFIG_PATH, Common::SCIM_USERS_PATH, Common::SSO_APPLICATION_DELETE_PATH, Common::SSO_APPLICATION_LOAD_ALL_PATH, Common::SSO_APPLICATION_LOAD_PATH, Common::SSO_APPLICATION_OIDC_CREATE_PATH, Common::SSO_APPLICATION_OIDC_UPDATE_PATH, Common::SSO_APPLICATION_SAML_CREATE_PATH, Common::SSO_APPLICATION_SAML_UPDATE_PATH, Common::SSO_CONFIGURE_OIDC_SETTINGS_PATH, Common::SSO_CONFIGURE_SAML_METADATA_PATH, Common::SSO_CONFIGURE_SAML_SETTINGS_PATH, Common::SSO_LOAD_SETTINGS_PATH, Common::SSO_MAPPING_PATH, Common::SSO_METADATA_PATH, Common::SSO_OIDC_PATH, Common::SSO_SETTINGS_PATH, Common::TENANT_CREATE_PATH, Common::TENANT_DELETE_PATH, Common::TENANT_LOAD_ALL_PATH, Common::TENANT_LOAD_PATH, Common::TENANT_SEARCH_ALL_PATH, Common::TENANT_UPDATE_PATH, Common::TEST_USERS_SEARCH_PATH, Common::TEST_USER_CREATE_PATH, Common::THEME_EXPORT_PATH, Common::THEME_IMPORT_PATH, Common::UPDATE_JWT_PATH, Common::USERS_SEARCH_PATH, Common::USER_ADD_ROLE_PATH, Common::USER_ADD_TENANT_PATH, Common::USER_CREATE_BATCH_PATH, Common::USER_CREATE_PATH, Common::USER_DELETE_ALL_TEST_USERS_PATH, Common::USER_DELETE_PATH, Common::USER_EXPIRE_PASSWORD_PATH, Common::USER_GENERATE_EMBEDDED_LINK_PATH, Common::USER_GENERATE_ENCHANTED_LINK_FOR_TEST_PATH, Common::USER_GENERATE_MAGIC_LINK_FOR_TEST_PATH, Common::USER_GENERATE_OTP_FOR_TEST_PATH, Common::USER_GET_PROVIDER_TOKEN, Common::USER_LOAD_PATH, Common::USER_LOGOUT_PATH, Common::USER_PATCH_PATH, Common::USER_REMOVE_ROLE_PATH, Common::USER_REMOVE_TENANT_PATH, Common::USER_SEARCH_PATH, Common::USER_SET_ACTIVE_PASSWORD_PATH, Common::USER_SET_PASSWORD_PATH, Common::USER_SET_TEMPORARY_PASSWORD_PATH, Common::USER_UPDATE_CUSTOM_ATTRIBUTE_PATH, Common::USER_UPDATE_EMAIL_PATH, Common::USER_UPDATE_LOGIN_ID_PATH, Common::USER_UPDATE_NAME_PATH, Common::USER_UPDATE_PATH, Common::USER_UPDATE_PHONE_PATH, Common::USER_UPDATE_PICTURE_PATH, Common::USER_UPDATE_STATUS_PATH

Constants included from Mixins::Common

Mixins::Common::COOKIE_DATA_NAME, Mixins::Common::DEFAULT_BASE_URL, Mixins::Common::DEFAULT_JWT_VALIDATION_LEEWAY, Mixins::Common::DEFAULT_TIMEOUT_SECONDS, Mixins::Common::PHONE_REGEX, Mixins::Common::REDIRECT_LOCATION_COOKIE_NAME, Mixins::Common::REFRESH_SESSION_COOKIE_NAME, Mixins::Common::REFRESH_SESSION_TOKEN_NAME, Mixins::Common::SESSION_COOKIE_NAME, Mixins::Common::SESSION_TOKEN_NAME

Instance Method Summary collapse

Methods included from Common

#associated_tenants_to_hash_array

Methods included from Mixins::Validation

#validate_code, #validate_email, #validate_login_id, #validate_password, #validate_phone, #validate_redirect_url, #validate_refresh_token_not_nil, #validate_scim_group_id, #validate_tenant, #validate_tenants, #validate_token_not_empty, #validate_user_id, #verify_provider

Methods included from Mixins::Common

#deep_copy, #get_method_string

Instance Method Details

#create_tenant(name: nil, id: nil, self_provisioning_domains: nil, custom_attributes: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/descope/api/v1/management/tenant.rb', line 13

def create_tenant(name: nil, id: nil, self_provisioning_domains: nil, custom_attributes: nil)
  # Create a new tenant with the given name. Tenant IDs are provisioned automatically, but can be provided
  # explicitly if needed. Both the name and ID must be unique per project.
  # @see https://docs.descope.com/api/openapi/tenantmanagement/operation/CreateTenant/

  self_provisioning_domains ||= []
  custom_attributes ||= {}
  post(TENANT_CREATE_PATH, compose_tenant_create_update_body(name, id, self_provisioning_domains, custom_attributes))
end

#delete_tenant(id = nil) ⇒ Object



32
33
34
35
# File 'lib/descope/api/v1/management/tenant.rb', line 32

def delete_tenant(id = nil)
  # Delete an existing tenant. IMPORTANT: This action is irreversible. Use carefully.
  post(TENANT_DELETE_PATH, { id: })
end

#load_all_tenantsObject



42
43
44
45
# File 'lib/descope/api/v1/management/tenant.rb', line 42

def load_all_tenants
  # Load all tenants.
  get(TENANT_LOAD_ALL_PATH)
end

#load_tenant(id = nil) ⇒ Object



37
38
39
40
# File 'lib/descope/api/v1/management/tenant.rb', line 37

def load_tenant(id = nil)
  # Load tenant by id.
  get(TENANT_LOAD_PATH, { id: })
end

#search_all_tenants(ids: nil, names: nil, self_provisioning_domains: nil, custom_attributes: nil) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/descope/api/v1/management/tenant.rb', line 47

def search_all_tenants(ids: nil, names: nil, self_provisioning_domains: nil, custom_attributes: nil)
  # Search all tenants.
  request_params = {
    ids:,
    names:,
    selfProvisioningDomains: self_provisioning_domains,
    customAttributes: custom_attributes
  }
  post(TENANT_SEARCH_ALL_PATH, request_params)
end

#update_tenant(name: nil, id: nil, self_provisioning_domains: nil, custom_attributes: nil) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/descope/api/v1/management/tenant.rb', line 23

def update_tenant(name: nil, id: nil, self_provisioning_domains: nil, custom_attributes: nil)
  #  Update an existing tenant with the given name and domains. IMPORTANT: All parameters are used as overrides
  #  to the existing tenant. Empty fields will override populated fields. Use carefully.
  # @see https://docs.descope.com/api/openapi/tenantmanagement/operation/UpdateTenant/
  self_provisioning_domains ||= []
  custom_attributes ||= {}
  post(TENANT_UPDATE_PATH, compose_tenant_create_update_body(name, id, self_provisioning_domains, custom_attributes))
end