class Turbopuffer::Client

def auth_headers

Returns:
  • (Hash{String=>String}) -

Other tags:
    Api: - private
def auth_headers
 {} if @api_key.nil?
orization" => "Bearer #{@api_key}"}

def initialize(

Parameters:
  • max_retry_delay (Float) --
  • initial_retry_delay (Float) --
  • timeout (Float) --
  • max_retries (Integer) -- Max number of retries to attempt after a failed retryable request.
  • base_url (String, nil) -- Override the default base URL for the API, e.g.,
  • default_namespace (String, nil) --
  • region (String, nil) -- The turbopuffer region to use. Defaults to `ENV["TURBOPUFFER_REGION"]`
  • api_key (String, nil) -- API key used for authentication Defaults to `ENV["TURBOPUFFER_API_KEY"]`
def initialize(
  api_key: ENV["TURBOPUFFER_API_KEY"],
  region: ENV["TURBOPUFFER_REGION"],
  default_namespace: nil,
  base_url: ENV["TURBOPUFFER_BASE_URL"],
  max_retries: self.class::DEFAULT_MAX_RETRIES,
  timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
  max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
)
  base_url ||= "https://{region}.turbopuffer.com"
  if api_key.nil?
    raise ArgumentError.new("api_key is required, and can be set via environ: \"TURBOPUFFER_API_KEY\"")
  end
  if base_url.include?("{region}")
    if region.nil?
      raise ArgumentError.new("region is required when base_url contains {region} placeholder: #{base_url}")
    end
    base_url = base_url.gsub("{region}", region)
  elsif !region.nil?
    raise ArgumentError.new("region is set, but would be ignored (baseUrl does not contain {region} placeholder: #{base_url})")
  end
  @default_namespace = default_namespace&.to_s
  @api_key = api_key.to_s
  @region = region&.to_s
  super(
    base_url: base_url,
    timeout: timeout,
    max_retries: max_retries,
    initial_retry_delay: initial_retry_delay,
    max_retry_delay: max_retry_delay
  )
end

def namespace(namespace)

Returns:
  • (Turbopuffer::Namespace) -

Parameters:
  • namespace (String) -- The ID of the namespace.
def namespace(namespace)
  Turbopuffer::Namespace.new(self, namespace)
end

def namespaces(params = {})

Other tags:
    See: Turbopuffer::Models::ClientNamespacesParams -

Returns:
  • (Turbopuffer::Internal::NamespacePage) -

Parameters:
  • request_options (Turbopuffer::RequestOptions, Hash{Symbol=>Object}, nil) --
  • prefix (String) -- Retrieve only the namespaces that match the prefix.
  • page_size (Integer) -- Limit the number of results per page.
  • cursor (String) -- Retrieve the next page of results.

Overloads:
  • namespaces(cursor: nil, page_size: nil, prefix: nil, request_options: {})
def namespaces(params = {})
  parsed, options = Turbopuffer::ClientNamespacesParams.dump_request(params)
  request(
    method: :get,
    path: "v1/namespaces",
    query: parsed,
    page: Turbopuffer::Internal::NamespacePage,
    model: Turbopuffer::NamespaceSummary,
    options: options
  )
end