fnapi

package
v0.0.191 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2023 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

View Source
const AdminScope = "admin"

Variables

View Source
var (
	EndpointAddress             = "https://api.namespacelabs.net"
	AdminMode                   = false
	ExchangeGithubToTenantToken = false
)
View Source
var NamingForceStored = false

Functions

func AddNamespaceHeaders added in v0.0.82

func AddNamespaceHeaders(ctx context.Context, headers *http.Header)

func AnonymousCall

func AnonymousCall(ctx context.Context, endpoint string, method string, req interface{}, handle func(io.Reader) error) error

A nil handle indicates that the caller wants to discard the response.

func AuthenticatedCall added in v0.0.110

func AuthenticatedCall(ctx context.Context, endpoint string, method string, req interface{}, handle func(io.Reader) error) error

func BearerToken added in v0.0.176

func BearerToken(t Token) string

func CompleteLogin

func CompleteLogin(ctx context.Context, id, ephemeralCliId string) (*auth.UserAuth, error)

func DecodeJSONResponse

func DecodeJSONResponse(resp any) func(io.Reader) error

func Map

func Map(ctx context.Context, fqdn, target string) error

func SetupFlags

func SetupFlags(flags *pflag.FlagSet)

func WithTelemetry

func WithTelemetry(ctx context.Context) context.Context

Types

type AllocateOpts

type AllocateOpts struct {
	Scope     schema.PackageName `json:"-"`
	FQDN      string             `json:"fqdn,omitempty"`
	Subdomain string             `json:"subdomain,omitempty"`
	NoTLS     bool               `json:"-"`
	Org       string             `json:"org,omitempty"`

	Stored *NameResource `json:"-"`
}

JSON annotations below are used for the Arg() serialization below.

type Artifact

type Artifact struct {
	URL    string `json:"url"`
	OS     string `json:"os"`
	Arch   string `json:"arch"`
	SHA256 string `json:"sha256"`
}

type Call

type Call[RequestT any] struct {
	Endpoint   string
	Method     string
	FetchToken func(context.Context) (Token, error)
}

func (Call[RequestT]) Do

func (c Call[RequestT]) Do(ctx context.Context, request RequestT, handle func(io.Reader) error) error

type CompleteClerkLoginResponse added in v0.0.96

type CompleteClerkLoginResponse struct {
	Ticket string `json:"ticket,omitempty"`
}

func CompleteClerkLogin added in v0.0.180

func CompleteClerkLogin(ctx context.Context, id, ephemeralCliId string) (*CompleteClerkLoginResponse, error)

type CompleteLoginRequest

type CompleteLoginRequest struct {
	LoginId        string `json:"login_id"`
	EphemeralCliId string `json:"ephemeral_cli_id"`
}

type CompleteTenantLoginResponse added in v0.0.180

type CompleteTenantLoginResponse struct {
	TenantToken string `json:"tenant_token,omitempty"`
	TenantName  string `json:"tenant_name,omitempty"`
}

func CompleteTenantLogin added in v0.0.180

func CompleteTenantLogin(ctx context.Context, id, ephemeralCliId string) (*CompleteTenantLoginResponse, error)

type ExchangeGithubTokenRequest added in v0.0.142

type ExchangeGithubTokenRequest struct {
	GithubToken string `json:"github_token,omitempty"`
}

type ExchangeGithubTokenResponse added in v0.0.142

type ExchangeGithubTokenResponse struct {
	TenantToken string  `json:"tenant_token,omitempty"`
	Tenant      *Tenant `json:"tenant,omitempty"`
}

func ExchangeGithubToken added in v0.0.142

func ExchangeGithubToken(ctx context.Context, jwt string) (ExchangeGithubTokenResponse, error)

type ExchangeTenantTokenRequest added in v0.0.161

type ExchangeTenantTokenRequest struct {
	TenantToken string   `json:"tenant_token,omitempty"`
	Scopes      []string `json:"scopes,omitempty"`
}

type ExchangeTenantTokenResponse added in v0.0.161

type ExchangeTenantTokenResponse struct {
	TenantToken string `json:"tenant_token,omitempty"`
}

func ExchangeTenantToken added in v0.0.161

func ExchangeTenantToken(ctx context.Context, scopes []string) (ExchangeTenantTokenResponse, error)

type ExchangeUserTokenRequest added in v0.0.161

type ExchangeUserTokenRequest struct {
	Scopes []string `json:"scopes,omitempty"`
}

type ExchangeUserTokenResponse added in v0.0.161

type ExchangeUserTokenResponse struct {
	TenantToken string `json:"tenant_token,omitempty"`
}

func ExchangeUserToken added in v0.0.161

func ExchangeUserToken(ctx context.Context, token string, scopes ...string) (ExchangeUserTokenResponse, error)

type GetLatestDeployPlansRequest added in v0.0.109

type GetLatestDeployPlansRequest struct {
	PackageName []string `json:"package_name,omitempty"`
}

type GetLatestDeployPlansResponse added in v0.0.109

type GetLatestDeployPlansResponse struct {
	Plan []*GetLatestDeployPlansResponse_Plan `json:"plan,omitempty"`
}

func GetLatestDeployPlans added in v0.0.109

func GetLatestDeployPlans(ctx context.Context, pkgs ...schema.PackageName) (*GetLatestDeployPlansResponse, error)

type GetLatestDeployPlansResponse_Plan added in v0.0.109

type GetLatestDeployPlansResponse_Plan struct {
	PackageName string `json:"package_name,omitempty"`
	Version     int32  `json:"version,omitempty"`
	Repository  string `json:"repository,omitempty"`
	Digest      string `json:"digest,omitempty"`
}

type GetLatestPrebuiltsRequest

type GetLatestPrebuiltsRequest struct {
	PackageName []string `json:"package_name,omitempty"`
}

type GetLatestPrebuiltsResponse

type GetLatestPrebuiltsResponse struct {
	Prebuilt []*GetLatestPrebuiltsResponse_Prebuilt `json:"prebuilt,omitempty"`
}

func GetLatestPrebuilts

func GetLatestPrebuilts(ctx context.Context, pkgs ...schema.PackageName) (*GetLatestPrebuiltsResponse, error)

type GetLatestPrebuiltsResponse_Prebuilt

type GetLatestPrebuiltsResponse_Prebuilt struct {
	PackageName string `json:"package_name,omitempty"`
	Repository  string `json:"repository,omitempty"`
	Digest      string `json:"digest,omitempty"`
}

type GetLatestRequest

type GetLatestRequest struct {
	NS NSRequirements `json:"ns"`
}

type GetLatestResponse

type GetLatestResponse struct {
	Version   string      `json:"version"`
	BuildTime time.Time   `json:"build_time"`
	Tarballs  []*Artifact `json:"tarballs"`
}

type IssueRequest

type IssueRequest struct {
	NameRequest NameRequest  `json:"name_request"`
	Resource    NameResource `json:"previous"`
}

type IssueResponse

type IssueResponse struct {
	Resource NameResource `json:"resource"`
}

type MapRequest

type MapRequest struct {
	UserAuth *auth.UserAuth `json:"userAuth"`
	FQDN     string         `json:"fqdn"`
	Target   string         `json:"target"`
}

type MapResponse

type MapResponse struct {
	FQDN string `json:"fqdn"`
}

type NSRequirements

type NSRequirements struct {
	MinimumApi int32 `json:"minimum_api"`
}

type NameCertificate

type NameCertificate struct {
	PrivateKey        []byte `json:"private_key"`
	CertificateBundle []byte `json:"certificate_bundle"`
	CertificateURL    string `json:"certificate_url"`
}

type NameRequest

type NameRequest struct {
	FQDN  string `json:"fqdn,omitempty"`
	NoTLS bool   `json:"noTls"`
	Org   string `json:"org,omitempty"`
}

type NameResource

type NameResource struct {
	ID          ResourceID      `json:"id"`
	Certificate NameCertificate `json:"certificate"`
}

func AllocateName

func AllocateName(ctx context.Context, opts AllocateOpts) (*NameResource, error)

type ResourceID

type ResourceID struct {
	Opaque []byte `json:"opaque"`
}

type StartLoginRequest

type StartLoginRequest struct {
	Kind              string   `json:"kind"`
	SupportedKinds    []string `json:"supported_kinds"`
	ImpersonateTenant string   `json:"impersonate_tenant,omitempty"`
}

type StartLoginResponse

type StartLoginResponse struct {
	LoginId  string `json:"login_id"`
	LoginUrl string `json:"login_url"`
	Kind     string `json:"kind"`
}

func StartLogin

func StartLogin(ctx context.Context, kind, impersonateTenant string) (*StartLoginResponse, error)

Returns the URL which the user should open.

type Telemetry

type Telemetry struct {
	// contains filtered or unexported fields
}

func InternalNewTelemetry added in v0.0.76

func InternalNewTelemetry(ctx context.Context, makeID func(context.Context) (ephemeralCliID, bool)) *Telemetry

func NewTelemetry

func NewTelemetry(ctx context.Context) *Telemetry

func TelemetryOn

func TelemetryOn(ctx context.Context) *Telemetry

func (*Telemetry) Enable

func (tel *Telemetry) Enable()

Telemetry needs to be excplicitly enabled by calling this function. IsTelemetryEnabled() may still be false if telemetry is disabled through DO_NOT_TRACK, etc.

func (*Telemetry) GetClientID added in v0.0.76

func (tel *Telemetry) GetClientID() string

func (*Telemetry) IsFirstRun added in v0.0.76

func (tel *Telemetry) IsFirstRun() bool

func (*Telemetry) IsTelemetryEnabled

func (tel *Telemetry) IsTelemetryEnabled() bool

func (*Telemetry) RecordError

func (tel *Telemetry) RecordError(ctx context.Context, err error)

func (*Telemetry) RecordInvocation

func (tel *Telemetry) RecordInvocation(ctx context.Context, cmd *cobra.Command, args []string) string

type Tenant added in v0.0.191

type Tenant struct {
	Name   string `json:"name,omitempty"`
	AppUrl string `json:"app_url,omitempty"`
}

type Token added in v0.0.176

type Token interface {
	Raw() string
}

func FetchTenantToken added in v0.0.170

func FetchTenantToken(ctx context.Context) (Token, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL