# coding: utf-8

"""
    Octopus Server API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 2019.6.7+Branch.tags-2019.6.7.Sha.aa18dc6809953218c66f57eff7d26481d9b23d6a
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from __future__ import absolute_import

import re  # noqa: F401

# python 2 and python 3 compatibility library
import six

from octopus_deploy_swagger_client.api_client import ApiClient


class ReleasesApi(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    Ref: https://github.com/swagger-api/swagger-codegen
    """

    def __init__(self, api_client=None):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client

    def child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource(self, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases that belong to the given project. Releases will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionProjectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_with_http_info(**kwargs)  # noqa: E501
            return data

    def child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_with_http_info(self, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases that belong to the given project. Releases will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionProjectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/projects/{id}/releases', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionProjectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases that belong to the given project. Releases will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionProjectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases that belong to the given project. Releases will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces_with_http_info(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionProjectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `child_index_response_descriptor_projects_project_projects_release_project_resource_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/projects/{id}/releases', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionProjectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource(self, **kwargs):  # noqa: E501
        """Get a list of DeploymentResources  # noqa: E501

        Lists all of the deployments that belong to the given release. Deployments will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_with_http_info(**kwargs)  # noqa: E501
            return data

    def child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_with_http_info(self, **kwargs):  # noqa: E501
        """Get a list of DeploymentResources  # noqa: E501

        Lists all of the deployments that belong to the given release. Deployments will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/deployments', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of DeploymentResources  # noqa: E501

        Lists all of the deployments that belong to the given release. Deployments will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of DeploymentResources  # noqa: E501

        Lists all of the deployments that belong to the given release. Deployments will be ordered from most recent to least recent.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces_with_http_info(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `child_index_response_descriptor_projects_release_projects_deployment_release_resource_deployment_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/deployments', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def create_response_descriptor_projects_release_release_resource(self, **kwargs):  # noqa: E501
        """Create a ReleaseResource  # noqa: E501

        Creates a new release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.create_response_descriptor_projects_release_release_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.create_response_descriptor_projects_release_release_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.create_response_descriptor_projects_release_release_resource_with_http_info(**kwargs)  # noqa: E501
            return data

    def create_response_descriptor_projects_release_release_resource_with_http_info(self, **kwargs):  # noqa: E501
        """Create a ReleaseResource  # noqa: E501

        Creates a new release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.create_response_descriptor_projects_release_release_resource_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['release_resource']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method create_response_descriptor_projects_release_release_resource" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'release_resource' in params:
            body_params = params['release_resource']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def create_response_descriptor_projects_release_release_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Create a ReleaseResource  # noqa: E501

        Creates a new release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.create_response_descriptor_projects_release_release_resource_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.create_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.create_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def create_response_descriptor_projects_release_release_resource_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """Create a ReleaseResource  # noqa: E501

        Creates a new release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.create_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'release_resource']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method create_response_descriptor_projects_release_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `create_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'release_resource' in params:
            body_params = params['release_resource']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder  # noqa: E501

        Record defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder  # noqa: E501

        Record defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/defects', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces  # noqa: E501

        Record defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces  # noqa: E501

        Record defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_reported_responder_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/defects', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder  # noqa: E501

        Update or resolve defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder  # noqa: E501

        Update or resolve defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/defects/resolve', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces  # noqa: E501

        Update or resolve defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces  # noqa: E501

        Update or resolve defect in a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_defect_resolved_responder_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/defects/resolve', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action(self, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action(environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_with_http_info(environment, tenant, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_with_http_info(environment, tenant, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_with_http_info(self, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_with_http_info(environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['environment', 'tenant', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'environment' is set
        if ('environment' not in params or
                params['environment'] is None):
            raise ValueError("Missing the required parameter `environment` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action`")  # noqa: E501
        # verify the required parameter 'tenant' is set
        if ('tenant' not in params or
                params['tenant'] is None):
            raise ValueError("Missing the required parameter `tenant` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'environment' in params:
            path_params['environment'] = params['environment']  # noqa: E501
        if 'tenant' in params:
            path_params['tenant'] = params['tenant']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/deployments/preview/{environment}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentPreviewResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0(self, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment for the given tenant.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0(environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0_with_http_info(environment, tenant, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0_with_http_info(environment, tenant, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0_with_http_info(self, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment for the given tenant.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0_with_http_info(environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['environment', 'tenant', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'environment' is set
        if ('environment' not in params or
                params['environment'] is None):
            raise ValueError("Missing the required parameter `environment` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0`")  # noqa: E501
        # verify the required parameter 'tenant' is set
        if ('tenant' not in params or
                params['tenant'] is None):
            raise ValueError("Missing the required parameter `tenant` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_0`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'environment' in params:
            path_params['environment'] = params['environment']  # noqa: E501
        if 'tenant' in params:
            path_params['tenant'] = params['tenant']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/deployments/preview/{environment}/{tenant}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentPreviewResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces(self, base_space_id, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces(base_space_id, environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_with_http_info(base_space_id, environment, tenant, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_with_http_info(base_space_id, environment, tenant, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_with_http_info(self, base_space_id, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_with_http_info(base_space_id, environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'environment', 'tenant', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces`")  # noqa: E501
        # verify the required parameter 'environment' is set
        if ('environment' not in params or
                params['environment'] is None):
            raise ValueError("Missing the required parameter `environment` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces`")  # noqa: E501
        # verify the required parameter 'tenant' is set
        if ('tenant' not in params or
                params['tenant'] is None):
            raise ValueError("Missing the required parameter `tenant` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'environment' in params:
            path_params['environment'] = params['environment']  # noqa: E501
        if 'tenant' in params:
            path_params['tenant'] = params['tenant']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/deployments/preview/{environment}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentPreviewResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0(self, base_space_id, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment for the given tenant.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0(base_space_id, environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0_with_http_info(base_space_id, environment, tenant, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0_with_http_info(base_space_id, environment, tenant, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0_with_http_info(self, base_space_id, environment, tenant, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0  # noqa: E501

        Gets a document that describes what steps will/won't be run during a deployment to a given environment for the given tenant.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0_with_http_info(base_space_id, environment, tenant, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str environment: ID of the environment (required)
        :param str tenant: ID of the tenant (required)
        :param str id: ID of the resource (required)
        :return: DeploymentPreviewResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'environment', 'tenant', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0`")  # noqa: E501
        # verify the required parameter 'environment' is set
        if ('environment' not in params or
                params['environment'] is None):
            raise ValueError("Missing the required parameter `environment` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0`")  # noqa: E501
        # verify the required parameter 'tenant' is set
        if ('tenant' not in params or
                params['tenant'] is None):
            raise ValueError("Missing the required parameter `tenant` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_preview_action_spaces_0`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'environment' in params:
            path_params['environment'] = params['environment']  # noqa: E501
        if 'tenant' in params:
            path_params['tenant'] = params['tenant']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/deployments/preview/{environment}/{tenant}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentPreviewResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DeploymentTemplateResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: DeploymentTemplateResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/deployments/template', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentTemplateResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DeploymentTemplateResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: DeploymentTemplateResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_deployment_template_action_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/deployments/template', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeploymentTemplateResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder(self, version, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder  # noqa: E501

        Gets a single release by project ID and version number.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder(version, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str version: ERROR - NOT DEFINED (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_with_http_info(version, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_with_http_info(version, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_with_http_info(self, version, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder  # noqa: E501

        Gets a single release by project ID and version number.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_with_http_info(version, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str version: ERROR - NOT DEFINED (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['version', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'version' is set
        if ('version' not in params or
                params['version'] is None):
            raise ValueError("Missing the required parameter `version` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'version' in params:
            path_params['version'] = params['version']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/projects/{id}/releases/{version}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces(self, base_space_id, version, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces  # noqa: E501

        Gets a single release by project ID and version number.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces(base_space_id, version, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str version: ERROR - NOT DEFINED (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces_with_http_info(base_space_id, version, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces_with_http_info(base_space_id, version, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces_with_http_info(self, base_space_id, version, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces  # noqa: E501

        Gets a single release by project ID and version number.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces_with_http_info(base_space_id, version, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str version: ERROR - NOT DEFINED (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'version', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces`")  # noqa: E501
        # verify the required parameter 'version' is set
        if ('version' not in params or
                params['version'] is None):
            raise ValueError("Missing the required parameter `version` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_by_project_and_version_responder_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'version' in params:
            path_params['version'] = params['version']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/projects/{id}/releases/{version}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: LifecycleProgressionResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: LifecycleProgressionResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/progression', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='LifecycleProgressionResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: LifecycleProgressionResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces  # noqa: E501

        Gets all of the information necessary for creating or editing a deployment for this release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: LifecycleProgressionResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_lifecycle_progression_action_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/progression', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='LifecycleProgressionResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action  # noqa: E501

        Refresh the variable snapshots associated with the release. The project's deployment process must not have changed since the release was created.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action  # noqa: E501

        Refresh the variable snapshots associated with the release. The project's deployment process must not have changed since the release was created.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/snapshot-variables', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces  # noqa: E501

        Refresh the variable snapshots associated with the release. The project's deployment process must not have changed since the release was created.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces  # noqa: E501

        Refresh the variable snapshots associated with the release. The project's deployment process must not have changed since the release was created.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the resource (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_action_response_descriptor_octopus_server_web_api_actions_release_snapshot_variables_action_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/snapshot-variables', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder(self, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder  # noqa: E501

        Gets all defects for a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the defect (required)
        :return: ResourceCollectionDefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_with_http_info(self, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder  # noqa: E501

        Gets all defects for a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the defect (required)
        :return: ResourceCollectionDefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}/defects', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionDefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces  # noqa: E501

        Gets all defects for a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the defect (required)
        :return: ResourceCollectionDefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces  # noqa: E501

        Gets all defects for a release.  NOTE: This definition is not complete. We will be adding more detail in future releases of Octopus.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the defect (required)
        :return: ResourceCollectionDefectResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `custom_query_response_descriptor_octopus_server_web_api_actions_list_defects_responder_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}/defects', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionDefectResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def delete_on_background_response_descriptor_projects_release_release_resource(self, id, **kwargs):  # noqa: E501
        """Delete a ReleaseResource by ID  # noqa: E501

        Deletes an existing release, along with all of the deployments, tasks and other associated resources belonging to the release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.delete_on_background_response_descriptor_projects_release_release_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to delete (required)
        :return: TaskResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.delete_on_background_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.delete_on_background_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def delete_on_background_response_descriptor_projects_release_release_resource_with_http_info(self, id, **kwargs):  # noqa: E501
        """Delete a ReleaseResource by ID  # noqa: E501

        Deletes an existing release, along with all of the deployments, tasks and other associated resources belonging to the release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.delete_on_background_response_descriptor_projects_release_release_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to delete (required)
        :return: TaskResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method delete_on_background_response_descriptor_projects_release_release_resource" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `delete_on_background_response_descriptor_projects_release_release_resource`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='TaskResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def delete_on_background_response_descriptor_projects_release_release_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Delete a ReleaseResource by ID  # noqa: E501

        Deletes an existing release, along with all of the deployments, tasks and other associated resources belonging to the release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.delete_on_background_response_descriptor_projects_release_release_resource_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to delete (required)
        :return: TaskResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.delete_on_background_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.delete_on_background_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def delete_on_background_response_descriptor_projects_release_release_resource_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """Delete a ReleaseResource by ID  # noqa: E501

        Deletes an existing release, along with all of the deployments, tasks and other associated resources belonging to the release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.delete_on_background_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to delete (required)
        :return: TaskResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method delete_on_background_response_descriptor_projects_release_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `delete_on_background_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `delete_on_background_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='TaskResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def index_response_descriptor_projects_release_release_resource(self, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases in the supplied Octopus Deploy Space, from all projects. The results will be sorted from most recent to least recent release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.index_response_descriptor_projects_release_release_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.index_response_descriptor_projects_release_release_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.index_response_descriptor_projects_release_release_resource_with_http_info(**kwargs)  # noqa: E501
            return data

    def index_response_descriptor_projects_release_release_resource_with_http_info(self, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases in the supplied Octopus Deploy Space, from all projects. The results will be sorted from most recent to least recent release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.index_response_descriptor_projects_release_release_resource_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method index_response_descriptor_projects_release_release_resource" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def index_response_descriptor_projects_release_release_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases in the supplied Octopus Deploy Space, from all projects. The results will be sorted from most recent to least recent release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.index_response_descriptor_projects_release_release_resource_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.index_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.index_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def index_response_descriptor_projects_release_release_resource_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of ReleaseResources  # noqa: E501

        Lists all of the releases in the supplied Octopus Deploy Space, from all projects. The results will be sorted from most recent to least recent release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.index_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param int skip: Number of items to skip
        :param int take: Number of items to take
        :return: ResourceCollectionReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'skip', 'take']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method index_response_descriptor_projects_release_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `index_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501

        query_params = []
        if 'skip' in params:
            query_params.append(('skip', params['skip']))  # noqa: E501
        if 'take' in params:
            query_params.append(('take', params['take']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def load_response_descriptor_projects_release_release_resource(self, id, **kwargs):  # noqa: E501
        """Get a ReleaseResource by ID  # noqa: E501

        Gets a release by ID.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.load_response_descriptor_projects_release_release_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to load (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.load_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.load_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def load_response_descriptor_projects_release_release_resource_with_http_info(self, id, **kwargs):  # noqa: E501
        """Get a ReleaseResource by ID  # noqa: E501

        Gets a release by ID.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.load_response_descriptor_projects_release_release_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to load (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method load_response_descriptor_projects_release_release_resource" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `load_response_descriptor_projects_release_release_resource`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def load_response_descriptor_projects_release_release_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Get a ReleaseResource by ID  # noqa: E501

        Gets a release by ID.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.load_response_descriptor_projects_release_release_resource_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to load (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.load_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.load_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def load_response_descriptor_projects_release_release_resource_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """Get a ReleaseResource by ID  # noqa: E501

        Gets a release by ID.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.load_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to load (required)
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method load_response_descriptor_projects_release_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `load_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `load_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def modify_response_descriptor_projects_release_release_resource(self, id, **kwargs):  # noqa: E501
        """Modify a ReleaseResource by ID  # noqa: E501

        Updates an existing release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.modify_response_descriptor_projects_release_release_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to modify (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.modify_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.modify_response_descriptor_projects_release_release_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

    def modify_response_descriptor_projects_release_release_resource_with_http_info(self, id, **kwargs):  # noqa: E501
        """Modify a ReleaseResource by ID  # noqa: E501

        Updates an existing release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.modify_response_descriptor_projects_release_release_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the ReleaseResource to modify (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['id', 'release_resource']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method modify_response_descriptor_projects_release_release_resource" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `modify_response_descriptor_projects_release_release_resource`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'release_resource' in params:
            body_params = params['release_resource']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/releases/{id}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def modify_response_descriptor_projects_release_release_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Modify a ReleaseResource by ID  # noqa: E501

        Updates an existing release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.modify_response_descriptor_projects_release_release_resource_spaces(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to modify (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.modify_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.modify_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

    def modify_response_descriptor_projects_release_release_resource_spaces_with_http_info(self, base_space_id, id, **kwargs):  # noqa: E501
        """Modify a ReleaseResource by ID  # noqa: E501

        Updates an existing release.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.modify_response_descriptor_projects_release_release_resource_spaces_with_http_info(base_space_id, id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :param str id: ID of the ReleaseResource to modify (required)
        :param ReleaseResource release_resource: The ReleaseResource resource to create
        :return: ReleaseResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id', 'release_resource']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method modify_response_descriptor_projects_release_release_resource_spaces" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'base_space_id' is set
        if ('base_space_id' not in params or
                params['base_space_id'] is None):
            raise ValueError("Missing the required parameter `base_space_id` when calling `modify_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501
        # verify the required parameter 'id' is set
        if ('id' not in params or
                params['id'] is None):
            raise ValueError("Missing the required parameter `id` when calling `modify_response_descriptor_projects_release_release_resource_spaces`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'base_space_id' in params:
            path_params['baseSpaceId'] = params['base_space_id']  # noqa: E501
        if 'id' in params:
            path_params['id'] = params['id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'release_resource' in params:
            body_params = params['release_resource']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json'])  # noqa: E501

        # Authentication setting
        auth_settings = ['APIKeyHeader', 'APIKeyQuery', 'NugetApiKeyHeader']  # noqa: E501

        return self.api_client.call_api(
            '/api/{baseSpaceId}/releases/{id}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReleaseResource',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)
