# 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 EnvironmentsApi(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 create_response_descriptor_environments_deployment_environment_environment_resource(self, **kwargs):  # noqa: E501
        """Create a EnvironmentResource  # noqa: E501

        Creates a new environment.  # 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_environments_deployment_environment_environment_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.create_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
            return data

    def create_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(self, **kwargs):  # noqa: E501
        """Create a EnvironmentResource  # noqa: E501

        Creates a new environment.  # 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_environments_deployment_environment_environment_resource_with_http_info(async_req=True)
        >>> result = thread.get()

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

        all_params = ['environment_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_environments_deployment_environment_environment_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 'environment_resource' in params:
            body_params = params['environment_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/environments', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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_environments_deployment_environment_environment_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Create a EnvironmentResource  # noqa: E501

        Creates a new environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.create_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def create_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """Create a EnvironmentResource  # noqa: E501

        Creates a new environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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 'environment_resource' in params:
            body_params = params['environment_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}/environments', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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_environments_deployment_environment_settings_metadata_responder(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_environments_deployment_environment_settings_metadata_responder  # noqa: E501

        Gets the custom settings metadata from the extensions.  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_environments_deployment_environment_settings_metadata_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: list[DeploymentEnvironmentSettingsMetadata]
                 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_environments_deployment_environment_settings_metadata_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_environments_deployment_environment_settings_metadata_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Gets the custom settings metadata from the extensions.  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_environments_deployment_environment_settings_metadata_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: list[DeploymentEnvironmentSettingsMetadata]
                 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_environments_deployment_environment_settings_metadata_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_environments_deployment_environment_settings_metadata_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/environments/{id}/metadata', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[DeploymentEnvironmentSettingsMetadata]',  # 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_environments_deployment_environment_settings_metadata_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_environments_deployment_environment_settings_metadata_responder_spaces  # noqa: E501

        Gets the custom settings metadata from the extensions.  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_environments_deployment_environment_settings_metadata_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: list[DeploymentEnvironmentSettingsMetadata]
                 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_environments_deployment_environment_settings_metadata_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_environments_deployment_environment_settings_metadata_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Gets the custom settings metadata from the extensions.  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_environments_deployment_environment_settings_metadata_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: list[DeploymentEnvironmentSettingsMetadata]
                 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_environments_deployment_environment_settings_metadata_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_environments_deployment_environment_settings_metadata_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_environments_deployment_environment_settings_metadata_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}/environments/{id}/metadata', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[DeploymentEnvironmentSettingsMetadata]',  # 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_sort_environments_responder(self, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder  # noqa: E501

        Takes an array of environment IDs as the request body, uses the order of items in the array to sort the environments on the server. The ID of every environment must be specified.  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_sort_environments_responder(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: None
                 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_sort_environments_responder_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_with_http_info(**kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_with_http_info(self, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder  # noqa: E501

        Takes an array of environment IDs as the request body, uses the order of items in the array to sort the environments on the server. The ID of every environment must be specified.  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_sort_environments_responder_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = []  # 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_sort_environments_responder" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        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/environments/sortorder', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_sort_environments_responder_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_spaces  # noqa: E501

        Takes an array of environment IDs as the request body, uses the order of items in the array to sort the environments on the server. The ID of every environment must be specified.  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_sort_environments_responder_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :return: None
                 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_sort_environments_responder_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_sort_environments_responder_spaces  # noqa: E501

        Takes an array of environment IDs as the request body, uses the order of items in the array to sort the environments on the server. The ID of every environment must be specified.  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_sort_environments_responder_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)
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_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_sort_environments_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_sort_environments_responder_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
        # 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}/environments/sortorder', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_variables_scoped_to_environment_responder(self, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_variables_scoped_to_environment_responder  # noqa: E501

        Lists all the variable set names (projects and library variable sets) that have variables that are scoped to only the 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_variables_scoped_to_environment_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: VariablesScopedToEnvironmentResponse
                 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_variables_scoped_to_environment_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_variables_scoped_to_environment_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Lists all the variable set names (projects and library variable sets) that have variables that are scoped to only the 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_variables_scoped_to_environment_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the resource (required)
        :return: VariablesScopedToEnvironmentResponse
                 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_variables_scoped_to_environment_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_variables_scoped_to_environment_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/environments/{id}/singlyScopedVariableDetails', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='VariablesScopedToEnvironmentResponse',  # 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_variables_scoped_to_environment_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_action_response_descriptor_octopus_server_web_api_actions_variables_scoped_to_environment_responder_spaces  # noqa: E501

        Lists all the variable set names (projects and library variable sets) that have variables that are scoped to only the 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_variables_scoped_to_environment_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: VariablesScopedToEnvironmentResponse
                 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_variables_scoped_to_environment_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_action_response_descriptor_octopus_server_web_api_actions_variables_scoped_to_environment_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Lists all the variable set names (projects and library variable sets) that have variables that are scoped to only the 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_variables_scoped_to_environment_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: VariablesScopedToEnvironmentResponse
                 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_variables_scoped_to_environment_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_variables_scoped_to_environment_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_variables_scoped_to_environment_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}/environments/{id}/singlyScopedVariableDetails', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='VariablesScopedToEnvironmentResponse',  # 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_environments_machines_responder(self, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder  # noqa: E501

        Lists all of the machines that belong to the 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_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the environment (required)
        :return: ResourceCollectionDeploymentTargetResource
                 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_environments_machines_responder_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Lists all of the machines that belong to the 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_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the environment (required)
        :return: ResourceCollectionDeploymentTargetResource
                 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_environments_machines_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_environments_machines_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/environments/{id}/machines', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionDeploymentTargetResource',  # 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_environments_machines_responder_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder_spaces  # noqa: E501

        Lists all of the machines that belong to the 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_query_response_descriptor_octopus_server_web_api_actions_environments_machines_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 environment (required)
        :return: ResourceCollectionDeploymentTargetResource
                 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_environments_machines_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_environments_machines_responder_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Lists all of the machines that belong to the 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_query_response_descriptor_octopus_server_web_api_actions_environments_machines_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 environment (required)
        :return: ResourceCollectionDeploymentTargetResource
                 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_environments_machines_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_environments_machines_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_environments_machines_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}/environments/{id}/machines', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionDeploymentTargetResource',  # 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_infrastructure_summary_environments_summary_responder(self, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder  # noqa: E501

        Lists all environments, including a summary of machine information  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_infrastructure_summary_environments_summary_responder(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: None
                 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_infrastructure_summary_environments_summary_responder_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_with_http_info(**kwargs)  # noqa: E501
            return data

    def custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_with_http_info(self, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder  # noqa: E501

        Lists all environments, including a summary of machine information  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_infrastructure_summary_environments_summary_responder_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = []  # 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_infrastructure_summary_environments_summary_responder" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        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/environments/summary', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_infrastructure_summary_environments_summary_responder_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_spaces  # noqa: E501

        Lists all environments, including a summary of machine information  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_infrastructure_summary_environments_summary_responder_spaces(base_space_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str base_space_id: ID of the space (required)
        :return: None
                 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_infrastructure_summary_environments_summary_responder_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

    def custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_spaces_with_http_info(self, base_space_id, **kwargs):  # noqa: E501
        """custom_query_response_descriptor_octopus_server_web_api_actions_infrastructure_summary_environments_summary_responder_spaces  # noqa: E501

        Lists all environments, including a summary of machine information  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_infrastructure_summary_environments_summary_responder_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)
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_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_infrastructure_summary_environments_summary_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_infrastructure_summary_environments_summary_responder_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
        # 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}/environments/summary', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_environments_deployment_environment_environment_resource(self, id, **kwargs):  # noqa: E501
        """Delete a EnvironmentResource by ID  # noqa: E501

        Deletes an existing environment.  # 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_environments_deployment_environment_environment_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the EnvironmentResource 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_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.delete_on_background_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Deletes an existing environment.  # 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_environments_deployment_environment_environment_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the EnvironmentResource 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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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/environments/{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_environments_deployment_environment_environment_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Delete a EnvironmentResource by ID  # noqa: E501

        Deletes an existing environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource 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_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.delete_on_background_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Deletes an existing environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource 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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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}/environments/{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_environments_deployment_environment_environment_resource(self, **kwargs):  # noqa: E501
        """Get a list of EnvironmentResources  # noqa: E501

        Lists all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # 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_environments_deployment_environment_environment_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: ResourceCollectionEnvironmentResource
                 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_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.index_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
            return data

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

        Lists all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # 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_environments_deployment_environment_environment_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: ResourceCollectionEnvironmentResource
                 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_environments_deployment_environment_environment_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/environments', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionEnvironmentResource',  # 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_environments_deployment_environment_environment_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of EnvironmentResources  # noqa: E501

        Lists all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # 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_environments_deployment_environment_environment_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: ResourceCollectionEnvironmentResource
                 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_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.index_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

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

        Lists all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # 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_environments_deployment_environment_environment_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: ResourceCollectionEnvironmentResource
                 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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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}/environments', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ResourceCollectionEnvironmentResource',  # 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 list_all_response_descriptor_environments_deployment_environment_environment_resource(self, **kwargs):  # noqa: E501
        """Get a list of EnvironmentResources  # noqa: E501

        Lists the name and ID of all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.list_all_response_descriptor_environments_deployment_environment_environment_resource(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: list[EnvironmentResource]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.list_all_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.list_all_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(**kwargs)  # noqa: E501
            return data

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

        Lists the name and ID of all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.list_all_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :return: list[EnvironmentResource]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = []  # 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 list_all_response_descriptor_environments_deployment_environment_environment_resource" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        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/environments/all', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[EnvironmentResource]',  # 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 list_all_response_descriptor_environments_deployment_environment_environment_resource_spaces(self, base_space_id, **kwargs):  # noqa: E501
        """Get a list of EnvironmentResources  # noqa: E501

        Lists the name and ID of all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.list_all_response_descriptor_environments_deployment_environment_environment_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)
        :return: list[EnvironmentResource]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.list_all_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
        else:
            (data) = self.list_all_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, **kwargs)  # noqa: E501
            return data

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

        Lists the name and ID of all of the environments in the supplied Octopus Deploy Space. The results will be sorted by the `SortOrder` field on each environment.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.list_all_response_descriptor_environments_deployment_environment_environment_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)
        :return: list[EnvironmentResource]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_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 list_all_response_descriptor_environments_deployment_environment_environment_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 `list_all_response_descriptor_environments_deployment_environment_environment_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
        # 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}/environments/all', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[EnvironmentResource]',  # 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_environments_deployment_environment_environment_resource(self, id, **kwargs):  # noqa: E501
        """Get a EnvironmentResource by ID  # noqa: E501

        Gets a single environment 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_environments_deployment_environment_environment_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the EnvironmentResource to load (required)
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.load_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Gets a single environment 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_environments_deployment_environment_environment_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the EnvironmentResource to load (required)
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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/environments/{id}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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_environments_deployment_environment_environment_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Get a EnvironmentResource by ID  # noqa: E501

        Gets a single environment 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_environments_deployment_environment_environment_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 EnvironmentResource to load (required)
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.load_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Gets a single environment 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_environments_deployment_environment_environment_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 EnvironmentResource to load (required)
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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}/environments/{id}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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_environments_deployment_environment_environment_resource(self, id, **kwargs):  # noqa: E501
        """Modify a EnvironmentResource by ID  # noqa: E501

        Modifies an existing environment.  # 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_environments_deployment_environment_environment_resource(id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str id: ID of the EnvironmentResource to modify (required)
        :param EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
        else:
            (data) = self.modify_response_descriptor_environments_deployment_environment_environment_resource_with_http_info(id, **kwargs)  # noqa: E501
            return data

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

        Modifies an existing environment.  # 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_environments_deployment_environment_environment_resource_with_http_info(id, async_req=True)
        >>> result = thread.get()

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

        all_params = ['id', 'environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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 'environment_resource' in params:
            body_params = params['environment_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/environments/{id}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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_environments_deployment_environment_environment_resource_spaces(self, base_space_id, id, **kwargs):  # noqa: E501
        """Modify a EnvironmentResource by ID  # noqa: E501

        Modifies an existing environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource to modify (required)
        :param EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 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_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
        else:
            (data) = self.modify_response_descriptor_environments_deployment_environment_environment_resource_spaces_with_http_info(base_space_id, id, **kwargs)  # noqa: E501
            return data

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

        Modifies an existing environment.  # 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_environments_deployment_environment_environment_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 EnvironmentResource to modify (required)
        :param EnvironmentResource environment_resource: The EnvironmentResource resource to create
        :return: EnvironmentResource
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['base_space_id', 'id', 'environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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_environments_deployment_environment_environment_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 'environment_resource' in params:
            body_params = params['environment_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}/environments/{id}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='EnvironmentResource',  # 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)
