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 ¶ 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.
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 CreateOrganizationTokenOptions ¶ added in v0.2.0
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 ¶ added in v0.0.51
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 ¶ added in v0.1.0
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 ¶ added in v0.2.0
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 ¶ added in v0.2.0
func (u *OrganizationToken) CanAccessOrganization(action rbac.Action, org string) bool
func (*OrganizationToken) CanAccessSite ¶ added in v0.2.0
func (u *OrganizationToken) CanAccessSite(action rbac.Action) bool
func (*OrganizationToken) CanAccessTeam ¶ added in v0.2.0
func (u *OrganizationToken) CanAccessTeam(rbac.Action, string) bool
func (*OrganizationToken) CanAccessWorkspace ¶ added in v0.2.0
func (u *OrganizationToken) CanAccessWorkspace(action rbac.Action, policy internal.WorkspacePolicy) bool
func (*OrganizationToken) IsOwner ¶ added in v0.2.0
func (u *OrganizationToken) IsOwner(organization string) bool
func (*OrganizationToken) IsSiteAdmin ¶ added in v0.2.0
func (u *OrganizationToken) IsSiteAdmin() bool
func (*OrganizationToken) Organizations ¶ added in v0.2.0
func (u *OrganizationToken) Organizations() []string
func (*OrganizationToken) String ¶ added in v0.2.0
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 ¶ added in v0.2.2
func (*Service) AfterCreateOrganization ¶ added in v0.1.8
func (s *Service) AfterCreateOrganization(hook func(context.Context, *Organization) error)
func (*Service) BeforeDeleteOrganization ¶ added in v0.1.8
func (s *Service) BeforeDeleteOrganization(hook func(context.Context, *Organization) error)
func (*Service) Create ¶ added in v0.2.2
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 ¶ added in v0.2.2
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 ¶ added in v0.2.2
func (*Service) GetEntitlements ¶
func (*Service) GetOrganizationToken ¶ added in v0.2.0
func (*Service) List ¶ added in v0.2.2
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 ¶ added in v0.2.2
func (*Service) Update ¶ added in v0.2.2
func (s *Service) Update(ctx context.Context, name string, opts UpdateOptions) (*Organization, error)
func (*Service) WatchOrganizations ¶ added in v0.2.0
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.