def _action(self, session, body, action="action"): """Perform instance action""" url = utils.urljoin(self.base_path, self._get_id(self), action) endpoint_override = self.service.get_endpoint_override() if endpoint_override is None: url = self._get_custom_url(session, url) else: endpoint_override = self._get_custom_override(endpoint_override) if action == "action": response = session.post(url, endpoint_filter=self.service, endpoint_override=endpoint_override, json=body, raise_exc=False, headers={ "Accept": "application/json", "Content-type": "application/json", "X-Language": "en-us" }) else: response = session.get(url, endpoint_filter=self.service, endpoint_override=endpoint_override, json=body, raise_exc=False, headers={ "Accept": "application/json", "Content-type": "application/json", "X-Language": "en-us" }) if response.status_code >= 400: return ErrorResponse.make_response(response) self._translate_response(response) return self
def create(self, session, prepend_key=True): endpoint_override = self.service.get_endpoint_override() request = self._prepare_request(requires_id=False, prepend_key=False) if endpoint_override is None: request.uri = self._get_custom_url(session, request.uri) response = session.post(request.uri, endpoint_filter=self.service, endpoint_override=endpoint_override, json=request.body, headers=request.headers, raise_exc=False) if response.status_code >= 400: return ErrorResponse.make_response(response) self._translate_response(response) return self
def recovery_instance(self, session, **params): endpoint_override = self.service.get_endpoint_override() if endpoint_override is None: url = self._get_custom_url(session, self.base_path) else: endpoint_override = self._get_custom_override(endpoint_override) response = session.post(url, endpoint_filter=self.service, endpoint_override=endpoint_override, json=params, raise_exc=False, headers={ "Accept": "application/json", "Content-type": "application/json", "X-Language": "en-us" }) if response.status_code >= 400: return ErrorResponse.make_response(response) self._translate_response(response) return self
def set_params(self, session, **params): uri = self.base_path % params params.pop('instance_id') body = {'values': params} endpoint_override = self.service.get_endpoint_override() if endpoint_override is None: uri = self._get_custom_url(session, uri) else: endpoint_override = self._get_custom_override(endpoint_override) response = session.put(uri, endpoint_filter=self.service, endpoint_override=endpoint_override, raise_exc=False, headers={ "Accept": "application/json", "Content-type": "application/json", "X-Language": "en-us" }, json=body) if response.status_code >= 400: return ErrorResponse.make_response(response) self._translate_response(response) return self