class Seatsio::WorkspacesClient

def activate(key:)

def activate(key:)
  @http_client.post("workspaces/#{key}/actions/activate")
end

def create(name:, is_test: nil)

def create(name:, is_test: nil)
  body = {}
  body['name'] = name
  body['isTest'] = is_test if is_test
  response = @http_client.post("workspaces", body)
  Domain::Workspace.new(response)
end

def cursor()

def cursor()
  Pagination::Cursor.new(Domain::Workspace, 'workspaces', @http_client)
end

def deactivate(key:)

def deactivate(key:)
  @http_client.post("workspaces/#{key}/actions/deactivate")
end

def initialize(secret_key, base_url)

def initialize(secret_key, base_url)
  @http_client = ::Seatsio::HttpClient.new(secret_key, nil, base_url)
end

def list(filter: nil)

def list(filter: nil)
  extended_cursor = cursor
  extended_cursor.set_query_param('filter', filter)
  extended_cursor
end

def regenerate_secret_key(key:)

def regenerate_secret_key(key:)
  response = @http_client.post("workspaces/#{key}/actions/regenerate-secret-key")
  response['secretKey']
end

def retrieve(key:)

def retrieve(key:)
  response = @http_client.get("/workspaces/#{key}")
  Domain::Workspace.new(response)
end

def set_default(key:)

def set_default(key:)
  @http_client.post("workspaces/actions/set-default/#{key}")
end

def update(key:, name:)

def update(key:, name:)
  body = {}
  body['name'] = name
  @http_client.post("workspaces/#{key}", body)
end