organization

package
v0.1.15 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2023 License: MPL-2.0 Imports: 28 Imported by: 0

Documentation

Overview

Package organization is responsible for OTF organizations

Index

Constants

View Source
const (
	DefaultSessionTimeout    = 20160
	DefaultSessionExpiration = 20160
)

Variables

This section is empty.

Functions

func NewCommand added in v0.1.9

func NewCommand(api *otfapi.Client) *cobra.Command

func NewService

func NewService(opts Options) *service

Types

type Authorizer

type Authorizer struct {
	logr.Logger
}

Authorizer authorizes access to an organization

func (*Authorizer) CanAccess

func (a *Authorizer) CanAccess(ctx context.Context, action rbac.Action, name string) (internal.Subject, error)

type CLI added in v0.1.9

type CLI struct {
	Service
}

type Client

type Client struct {
	internal.JSONAPIClient

	Service
}

func (*Client) CreateOrganization added in v0.1.0

func (c *Client) CreateOrganization(ctx context.Context, options CreateOptions) (*Organization, error)

CreateOrganization creates a new organization with the given options.

func (*Client) DeleteOrganization

func (c *Client) DeleteOrganization(ctx context.Context, organization string) error

DeleteOrganization deletes an organization via http.

type CreateOptions added in v0.1.8

type CreateOptions struct {
	Name *string

	// TFE fields that OTF does not support but persists merely to pass the
	// go-tfe integration tests
	Email                      *string
	CollaboratorAuthPolicy     *string
	CostEstimationEnabled      *bool
	SessionRemember            *int
	SessionTimeout             *int
	AllowForceDeleteWorkspaces *bool
}

CreateOptions represents the options for creating an organization. See types.CreateOptions for more details.

type Entitlements

type Entitlements struct {
	ID                    string
	Agents                bool
	AuditLogging          bool
	CostEstimation        bool
	Operations            bool
	PrivateModuleRegistry bool
	SSO                   bool
	Sentinel              bool
	StateStorage          bool
	Teams                 bool
	VCSIntegrations       bool
}

OTF is free and therefore the user is entitled to all currently supported services.

type ListOptions added in v0.0.51

type ListOptions struct {
	resource.PageOptions
}

ListOptions represents the options for listing organizations.

type Options

type Options struct {
	RestrictOrganizationCreation bool

	*sql.DB
	*tfeapi.Responder
	*pubsub.Broker
	html.Renderer
	logr.Logger
}

type Organization

type Organization struct {
	ID        string    `jsonapi:"primary,organizations"`
	CreatedAt time.Time `jsonapi:"attribute" json:"created-at"`
	UpdatedAt time.Time `jsonapi:"attribute" json:"updated-at"`
	Name      string    `jsonapi:"attribute" json:"name"`

	// TFE fields that OTF does not support but persists merely to pass the
	// go-tfe integration tests
	Email                      *string
	CollaboratorAuthPolicy     *string
	SessionRemember            *int
	SessionTimeout             *int
	AllowForceDeleteWorkspaces bool
	CostEstimationEnabled      bool
}

Organization is an OTF organization, comprising workspaces, users, etc.

func NewOrganization added in v0.1.0

func NewOrganization(opts CreateOptions) (*Organization, error)

func NewTestOrganization

func NewTestOrganization(t *testing.T) *Organization

func (*Organization) String

func (org *Organization) String() string

func (*Organization) Update

func (org *Organization) Update(opts UpdateOptions) error

type OrganizationPage

type OrganizationPage struct {
	html.SitePage

	Organization string
}

OrganizationPage contains data shared by all organization-based pages.

func NewPage

func NewPage(r *http.Request, title, organization string) OrganizationPage

type OrganizationService

type OrganizationService = Service

type Service

type Service interface {
	CreateOrganization(ctx context.Context, opts CreateOptions) (*Organization, error)
	UpdateOrganization(ctx context.Context, name string, opts UpdateOptions) (*Organization, error)
	GetOrganization(ctx context.Context, name string) (*Organization, error)
	ListOrganizations(ctx context.Context, opts ListOptions) (*resource.Page[*Organization], error)
	DeleteOrganization(ctx context.Context, name string) error
	GetEntitlements(ctx context.Context, organization string) (Entitlements, error)
	AfterCreateOrganization(l hooks.Listener[*Organization])
	BeforeDeleteOrganization(l hooks.Listener[*Organization])
}

type UpdateOptions added in v0.1.8

type UpdateOptions struct {
	Name            *string
	SessionRemember *int
	SessionTimeout  *int

	// TFE fields that OTF does not support but persists merely to pass the
	// go-tfe integration tests
	Email                      *string
	CollaboratorAuthPolicy     *string
	CostEstimationEnabled      *bool
	AllowForceDeleteWorkspaces *bool
}

UpdateOptions represents the options for updating an organization.

Jump to

Keyboard shortcuts

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