Documentation
¶
Overview ¶
Package organization is responsible for OTF organizations
Index ¶
- Constants
- func NewCommand(client *otfapi.Client) *cobra.Command
- type Authorizer
- type CLI
- type Client
- type CreateOptions
- type CreateOrganizationTokenOptions
- type Entitlements
- type ListOptions
- type Options
- type Organization
- type OrganizationPage
- type OrganizationToken
- func (u *OrganizationToken) CanAccessOrganization(action rbac.Action, org string) bool
- func (u *OrganizationToken) CanAccessSite(action rbac.Action) bool
- func (u *OrganizationToken) CanAccessTeam(rbac.Action, string) bool
- func (u *OrganizationToken) CanAccessWorkspace(action rbac.Action, policy internal.WorkspacePolicy) bool
- func (u *OrganizationToken) IsOwner(organization string) bool
- func (u *OrganizationToken) IsSiteAdmin() bool
- func (u *OrganizationToken) Organizations() []string
- func (u *OrganizationToken) String() string
- type Service
- func (s *Service) AddHandlers(r *mux.Router)
- func (s *Service) AfterCreateOrganization(hook func(context.Context, *Organization) error)
- func (s *Service) BeforeDeleteOrganization(hook func(context.Context, *Organization) error)
- func (s *Service) Create(ctx context.Context, opts CreateOptions) (*Organization, error)
- func (s *Service) CreateToken(ctx context.Context, opts CreateOrganizationTokenOptions) (*OrganizationToken, []byte, error)
- func (s *Service) Delete(ctx context.Context, name string) error
- func (s *Service) DeleteToken(ctx context.Context, organization string) error
- func (s *Service) Get(ctx context.Context, name string) (*Organization, error)
- func (s *Service) GetEntitlements(ctx context.Context, organization string) (Entitlements, error)
- func (s *Service) GetOrganizationToken(ctx context.Context, organization string) (*OrganizationToken, error)
- func (s *Service) List(ctx context.Context, opts ListOptions) (*resource.Page[*Organization], error)
- func (s *Service) ListTokens(ctx context.Context, organization string) ([]*OrganizationToken, error)
- func (s *Service) Update(ctx context.Context, name string, opts UpdateOptions) (*Organization, error)
- func (s *Service) WatchOrganizations(ctx context.Context) (<-chan pubsub.Event[*Organization], func())
- type UpdateOptions
Constants ¶
const ( DefaultSessionTimeout = 20160 DefaultSessionExpiration = 20160 )
const OrganizationTokenKind tokens.Kind = "organization_token"
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Authorizer ¶
Authorizer authorizes access to an organization
type Client ¶
func (*Client) CreateOrganization ¶
func (c *Client) CreateOrganization(ctx context.Context, options CreateOptions) (*Organization, error)
CreateOrganization creates a new organization with the given options.
type CreateOptions ¶
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 CreateOrganizationTokenOptions ¶
type CreateOrganizationTokenOptions struct {
Organization string `schema:"organization_name,required"`
Expiry *time.Time
}
CreateOrganizationTokenOptions are options for creating an organization token via the service endpoint
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 ¶
type ListOptions struct {
resource.PageOptions
}
ListOptions represents the options for listing organizations.
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 ¶
func NewOrganization(opts CreateOptions) (*Organization, error)
func (*Organization) String ¶
func (org *Organization) String() string
func (*Organization) Update ¶
func (org *Organization) Update(opts UpdateOptions) error
type OrganizationPage ¶
OrganizationPage contains data shared by all organization-based pages.
type OrganizationToken ¶
type OrganizationToken struct {
ID string
CreatedAt time.Time
// Token belongs to an organization
Organization string
// Optional expiry.
Expiry *time.Time
}
OrganizationToken provides information about an API token for an organization
func (*OrganizationToken) CanAccessOrganization ¶
func (u *OrganizationToken) CanAccessOrganization(action rbac.Action, org string) bool
func (*OrganizationToken) CanAccessSite ¶
func (u *OrganizationToken) CanAccessSite(action rbac.Action) bool
func (*OrganizationToken) CanAccessTeam ¶
func (u *OrganizationToken) CanAccessTeam(rbac.Action, string) bool
func (*OrganizationToken) CanAccessWorkspace ¶
func (u *OrganizationToken) CanAccessWorkspace(action rbac.Action, policy internal.WorkspacePolicy) bool
func (*OrganizationToken) IsOwner ¶
func (u *OrganizationToken) IsOwner(organization string) bool
func (*OrganizationToken) IsSiteAdmin ¶
func (u *OrganizationToken) IsSiteAdmin() bool
func (*OrganizationToken) Organizations ¶
func (u *OrganizationToken) Organizations() []string
func (*OrganizationToken) String ¶
func (u *OrganizationToken) String() string
type Service ¶
type Service struct {
RestrictOrganizationCreation bool
internal.Authorizer // authorize access to org
logr.Logger
// contains filtered or unexported fields
}
func NewService ¶
func (*Service) AddHandlers ¶
func (*Service) AfterCreateOrganization ¶
func (s *Service) AfterCreateOrganization(hook func(context.Context, *Organization) error)
func (*Service) BeforeDeleteOrganization ¶
func (s *Service) BeforeDeleteOrganization(hook func(context.Context, *Organization) error)
func (*Service) Create ¶
func (s *Service) Create(ctx context.Context, opts CreateOptions) (*Organization, error)
Create creates an organization. Only users can create organizations, or, if RestrictOrganizationCreation is true, then only the site admin can create organizations. Creating an organization automatically creates an owners team and adds creator as an owner.
func (*Service) CreateToken ¶
func (s *Service) CreateToken(ctx context.Context, opts CreateOrganizationTokenOptions) (*OrganizationToken, []byte, error)
CreateToken creates an organization token. If an organization token already exists it is replaced.
func (*Service) DeleteToken ¶
func (*Service) GetEntitlements ¶
func (*Service) GetOrganizationToken ¶
func (*Service) List ¶
func (s *Service) List(ctx context.Context, opts ListOptions) (*resource.Page[*Organization], error)
List lists organizations according to the subject. If the subject has site-wide permission to list organizations then all organizations are listed. Otherwise: Subject is a user: list their organization memberships Subject is an agent: return its organization Subject is an organization token: return its organization Subject is a team: return its organization
func (*Service) ListTokens ¶
func (*Service) Update ¶
func (s *Service) Update(ctx context.Context, name string, opts UpdateOptions) (*Organization, error)
func (*Service) WatchOrganizations ¶
type UpdateOptions ¶
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.