okta/AppInstanceClient.py (43 lines of code) (raw):
from okta.framework.ApiClient import ApiClient
from okta.framework.Utils import Utils
from okta.framework.PagedResults import PagedResults
from okta.models.app.AppInstance import AppInstance
class AppInstanceClient(ApiClient):
def __init__(self, *args, **kwargs):
kwargs['pathname'] = '/api/v1/apps'
ApiClient.__init__(self, *args, **kwargs)
# CRUD
def get_app_instances(self, limit=None, filter_string=None):
"""Get a list of AppInstances
:param limit: maximum number of apps to return
:type limit: int or None
:param filter_string: string to filter users
:type filter_string: str or None
:rtype: list of AppInstance
"""
params = {
'limit': limit,
'filter': filter_string
}
response = ApiClient.get_path(self, '/', params=params)
return Utils.deserialize(response.text, AppInstance)
def get_paged_app_instances(self, limit=None, filter_string=None, after=None, url=None):
"""Get a paged list of AppInstances
:param limit: maximum number of apps to return
:type limit: int or None
:param filter_string: string to filter apps
:type filter_string: str or None
:param after: app id that filtering will resume after
:type after: str
:param url: url that returns a list of AppInstance
:type url: str
:rtype: PagedResults of AppInstance
"""
if url:
response = ApiClient.get(self, url)
else:
params = {
'limit': limit,
'after': after,
'filter': filter_string
}
response = ApiClient.get_path(self, '/', params=params)
return PagedResults(response, AppInstance)
def create_app_instance(self, app_instance):
"""Create a app instance
:param app_instance: the data to create a user
:type app_instance: AppInstance
:rtype: AppInstance
"""
response = ApiClient.post_path(self, '/', app_instance)
return Utils.deserialize(response.text, AppInstance)
def get_app_instance(self, id):
"""Get a single app
:param id: the app id
:type id: str
:rtype: AppInstance
"""
response = ApiClient.get_path(self, '/{0}'.format(id))
return Utils.deserialize(response.text, AppInstance)
def update_app_instance(self, app_instance):
"""Update an app
:param app_instance: the app to update
:type app_instance: AppInstance
:rtype: AppInstance
"""
return self.update_app_instance_by_id(app_instance.id, app_instance)
def update_app_instance_by_id(self, id, app_instance):
"""Update an app, defined by an id
:param id: the target app id
:type id: str
:param app_instance: the data to update the target app
:type app_instance: AppInstance
:rtype: AppInstance
"""
response = ApiClient.put_path(self, '/{0}'.format(id), app_instance)
return Utils.deserialize(response.text, AppInstance)
def delete_app_instance(self, id):
"""Delete app by target id
:param id: the target app id
:type id: str
:return: None
"""
ApiClient.delete_path(self, '/{0}'.format(id))
# LIFECYCLE
def activate_app_instance(self, id):
"""Activate app by target id
:param id: the target app id
:type id: str
:return: None
"""
ApiClient.post_path(self, '/{0}/lifecycle/activate'.format(id), None)
def deactivate_app_instance(self, id):
"""Deactivate app by target id
:param id: the target app id
:type id: str
:return: None
"""
ApiClient.post_path(self, '/{0}/lifecycle/deactivate'.format(id), None)