def create_environment(self, topology_name, topology={}, id=None, **kwargs):
        '''
        create_environment(self, topology_name, topology={}, id=None, **kwargs)

        Create a new environment

        :Parameters:

        * *topology_name* (`string`) -- The topology identifier. Must be provided to create an environment.
        * *topology* (`object`) -- Topology data (must match the topology json schema)
        * *id* (`object`) -- The environment identifier. If none provided when creating environment, Opereto will automatically assign a unique identifier.

        :return: id of the created environment

        '''
        request_data = {'topology_name': topology_name,'id': id, 'topology':topology, 'add_only':True}
        request_data.update(**kwargs)
        return self._call_rest_api('post', '/environments', data=request_data, error='Failed to create environment')
create_environment(self, topology_name, topology={}, id=None, **kwargs)

        Create a new environment

        :Parameters:

        * *topology_name* (`string`) -- The topology identifier. Must be provided to create an environment.
        * *topology* (`object`) -- Topology data (must match the topology json schema)
        * *id* (`object`) -- The environment identifier. If none provided when creating environment, Opereto will automatically assign a unique identifier.

        :return: id of the created environment