async def create_policy(self, policy, query_params={}, keep_empty_params=False): """ Creates a policy. Args: {policy} query_params {dict}: Map of query parameters for request [query_params.activate] {str} Returns: Policy """ http_method = "post".upper() api_url = format_url(f""" {self._base_url} /api/v1/policies """) if query_params: encoded_query_params = urlencode(query_params) api_url += f"/?{encoded_query_params}" if isinstance(policy, dict): body = policy else: body = policy.as_dict() headers = { "Accept": "application/json", "Content-Type": "application/json" } form = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers, form, keep_empty_params=keep_empty_params) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: body = self.form_response_body(response.get_body()) result = find_policy_model(body["type"])(body) except Exception as error: return (None, response, error) return (result, response, None)
async def list_policies(self, query_params={}, keep_empty_params=False): """ Gets all policies with the specified type. Args: query_params {dict}: Map of query parameters for request [query_params.type] {str} [query_params.status] {str} [query_params.expand] {str} Returns: list: Collection of Policy instances. """ http_method = "get".upper() api_url = format_url(f""" {self._base_url} /api/v1/policies """) if query_params: encoded_query_params = urlencode(query_params) api_url += f"/?{encoded_query_params}" body = {} headers = {} form = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers, form, keep_empty_params=keep_empty_params) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: result = [] for item in response.get_body(): result.append( find_policy_model(item["type"])( self.form_response_body(item))) except Exception as error: return (None, response, error) return (result, response, None)
async def get_policy(self, policyId, query_params={}, keep_empty_params=False): """ Gets a policy. Args: policy_id {str} query_params {dict}: Map of query parameters for request [query_params.expand] {str} Returns: Policy """ http_method = "get".upper() api_url = format_url(f""" {self._base_url} /api/v1/policies/{policyId} """) if query_params: encoded_query_params = urlencode(query_params) api_url += f"/?{encoded_query_params}" body = {} headers = {} form = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers, form, keep_empty_params=keep_empty_params) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: body = self.form_response_body(response.get_body()) result = find_policy_model(body["type"])(body) except Exception as error: return (None, response, error) return (result, response, None)
async def update_policy(self, policyId, policy, keep_empty_params=False): """ Updates a policy. Args: policy_id {str} {policy} Returns: Policy """ http_method = "put".upper() api_url = format_url(f""" {self._base_url} /api/v1/policies/{policyId} """) if isinstance(policy, dict): body = policy else: body = policy.as_dict() headers = { "Accept": "application/json", "Content-Type": "application/json" } form = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers, form, keep_empty_params=keep_empty_params) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: body = self.form_response_body(response.get_body()) result = find_policy_model(body["type"])(body) except Exception as error: return (None, response, error) return (result, response, None)
async def update_authorization_server_policy(self, authServerId, policyId, policy): """ Args: auth_server_id {str} policy_id {str} {policy} Returns: Policy """ http_method = "put".upper() api_url = format_url(f""" {self._base_url} /api/v1/authorizationServers/{authServerId} /policies/{policyId} """) if isinstance(policy, dict): body = policy else: body = policy.as_dict() headers = { "Accept": "application/json", "Content-Type": "application/json" } request, error = await self._request_executor.create_request( http_method, api_url, body, headers) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: body = self.form_response_body(response.get_body()) result = find_policy_model(body["type"])(body) except Exception as error: return (None, response, error) return (result, response, None)
async def list_authorization_server_policies(self, authServerId): """ Args: auth_server_id {str} Returns: list: Collection of Policy instances. """ http_method = "get".upper() api_url = format_url(f""" {self._base_url} /api/v1/authorizationServers/{authServerId} /policies """) body = {} headers = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: result = [] for item in response.get_body(): result.append( find_policy_model(item["type"])( self.form_response_body(item))) except Exception as error: return (None, response, error) return (result, response, None)
async def get_authorization_server_policy(self, authServerId, policyId): """ Args: auth_server_id {str} policy_id {str} Returns: Policy """ http_method = "get".upper() api_url = format_url(f""" {self._base_url} /api/v1/authorizationServers/{authServerId} /policies/{policyId} """) body = {} headers = {} request, error = await self._request_executor.create_request( http_method, api_url, body, headers) if error: return (None, None, error) response, error = await self._request_executor\ .execute(request, Policy) if error: return (None, response, error) try: body = self.form_response_body(response.get_body()) result = find_policy_model(body["type"])(body) except Exception as error: return (None, response, error) return (result, response, None)