models

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2024 License: MPL-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package models defines Phobos resources and their properties as structs.

Index

Constants

View Source
const (
	// DefaultMaxJobDuration is the default max job duration
	DefaultMaxJobDuration = time.Minute * 60
	// MaxAllowedJobDuration is the max allowed job duration
	MaxAllowedJobDuration = time.Hour * 24
)
View Source
const (
	AddParticipantReleaseChangeType    = "ADD_PARTICIPANT"
	RemoveParticipantReleaseChangeType = "REMOVE_PARTICIPANT"
)

ReleaseChangeType constants

View Source
const AgentSessionHeartbeatInterval = time.Minute

AgentSessionHeartbeatInterval is the interval that agents should send heartbeats

View Source
const (
	// MaxPluginVersionDocFiles is the maximum number of documentation files allowed for a plugin version.
	MaxPluginVersionDocFiles = 100
)
View Source
const (
	// PRNPrefix is the prefix for all PRNs.
	PRNPrefix = "prn:"
)
View Source
const ProjectVariableEnvironmentScopeAll = "*"

ProjectVariableEnvironmentScopeAll is the environment scope for all environments

Variables

View Source
var (
	ViewOrganization        = Permission{ResourceType: OrganizationResource, Action: ViewAction}
	ViewMembership          = Permission{ResourceType: MembershipResource, Action: ViewAction}
	CreateMembership        = Permission{ResourceType: MembershipResource, Action: CreateAction}
	UpdateMembership        = Permission{ResourceType: MembershipResource, Action: UpdateAction}
	DeleteMembership        = Permission{ResourceType: MembershipResource, Action: DeleteAction}
	ViewProject             = Permission{ResourceType: ProjectResource, Action: ViewAction}
	CreateProject           = Permission{ResourceType: ProjectResource, Action: CreateAction}
	UpdateProject           = Permission{ResourceType: ProjectResource, Action: UpdateAction}
	DeleteProject           = Permission{ResourceType: ProjectResource, Action: DeleteAction}
	ViewJob                 = Permission{ResourceType: JobResource, Action: ViewAction}
	ClaimJob                = Permission{ResourceType: JobResource, Action: ClaimAction}
	UpdateJobState          = Permission{ResourceType: JobResource, Action: UpdateAction}
	CreateTeam              = Permission{ResourceType: TeamResource, Action: CreateAction}
	UpdateTeam              = Permission{ResourceType: TeamResource, Action: UpdateAction}
	DeleteTeam              = Permission{ResourceType: TeamResource, Action: DeleteAction}
	CreateUser              = Permission{ResourceType: UserResource, Action: CreateAction}
	UpdateUser              = Permission{ResourceType: UserResource, Action: UpdateAction}
	DeleteUser              = Permission{ResourceType: UserResource, Action: DeleteAction}
	ViewPipelineTemplate    = Permission{ResourceType: PipelineTemplateResource, Action: ViewAction}
	CreatePipelineTemplate  = Permission{ResourceType: PipelineTemplateResource, Action: CreateAction}
	DeletePipelineTemplate  = Permission{ResourceType: PipelineTemplateResource, Action: DeleteAction}
	ViewPipeline            = Permission{ResourceType: PipelineResource, Action: ViewAction}
	ExecutePipeline         = Permission{ResourceType: PipelineResource, Action: ExecuteAction}
	UpdatePipelineState     = Permission{ResourceType: PipelineResource, Action: UpdateAction} // Special non-assignable permission.
	CancelPipeline          = Permission{ResourceType: PipelineResource, Action: CancelAction} // Cancelling a pipeline also allows cancelling jobs.
	ViewAgent               = Permission{ResourceType: AgentResource, Action: ViewAction}
	CreateAgent             = Permission{ResourceType: AgentResource, Action: CreateAction}
	UpdateAgent             = Permission{ResourceType: AgentResource, Action: UpdateAction}
	DeleteAgent             = Permission{ResourceType: AgentResource, Action: DeleteAction}
	CreateAgentSession      = Permission{ResourceType: AgentSessionResource, Action: CreateAction}
	UpdateAgentSession      = Permission{ResourceType: AgentSessionResource, Action: UpdateAction}
	ViewEnvironment         = Permission{ResourceType: EnvironmentResource, Action: ViewAction}
	CreateEnvironment       = Permission{ResourceType: EnvironmentResource, Action: CreateAction}
	UpdateEnvironment       = Permission{ResourceType: EnvironmentResource, Action: UpdateAction}
	DeleteEnvironment       = Permission{ResourceType: EnvironmentResource, Action: DeleteAction}
	ViewServiceAccount      = Permission{ResourceType: ServiceAccountResource, Action: ViewAction}
	CreateServiceAccount    = Permission{ResourceType: ServiceAccountResource, Action: CreateAction}
	UpdateServiceAccount    = Permission{ResourceType: ServiceAccountResource, Action: UpdateAction}
	DeleteServiceAccount    = Permission{ResourceType: ServiceAccountResource, Action: DeleteAction}
	ViewApprovalRule        = Permission{ResourceType: ApprovalRuleResource, Action: ViewAction}
	CreateApprovalRule      = Permission{ResourceType: ApprovalRuleResource, Action: CreateAction}
	UpdateApprovalRule      = Permission{ResourceType: ApprovalRuleResource, Action: UpdateAction}
	DeleteApprovalRule      = Permission{ResourceType: ApprovalRuleResource, Action: DeleteAction}
	ViewLifecycleTemplate   = Permission{ResourceType: LifecycleTemplateResource, Action: ViewAction}
	CreateLifecycleTemplate = Permission{ResourceType: LifecycleTemplateResource, Action: CreateAction}
	ViewReleaseLifecycle    = Permission{ResourceType: ReleaseLifecycleResource, Action: ViewAction}
	CreateReleaseLifecycle  = Permission{ResourceType: ReleaseLifecycleResource, Action: CreateAction}
	UpdateReleaseLifecycle  = Permission{ResourceType: ReleaseLifecycleResource, Action: UpdateAction}
	DeleteReleaseLifecycle  = Permission{ResourceType: ReleaseLifecycleResource, Action: DeleteAction}
	ViewRelease             = Permission{ResourceType: ReleaseResource, Action: ViewAction}
	CreateRelease           = Permission{ResourceType: ReleaseResource, Action: CreateAction}
	UpdateRelease           = Permission{ResourceType: ReleaseResource, Action: UpdateAction}
	DeleteRelease           = Permission{ResourceType: ReleaseResource, Action: DeleteAction}
	ViewVariable            = Permission{ResourceType: VariableResource, Action: ViewAction}
	ViewPlugin              = Permission{ResourceType: PluginResource, Action: ViewAction}
	CreatePlugin            = Permission{ResourceType: PluginResource, Action: CreateAction}
	UpdatePlugin            = Permission{ResourceType: PluginResource, Action: UpdateAction}
	DeletePlugin            = Permission{ResourceType: PluginResource, Action: DeleteAction}
	ViewVCSProvider         = Permission{ResourceType: VCSProviderResource, Action: ViewAction}
	CreateVCSProvider       = Permission{ResourceType: VCSProviderResource, Action: CreateAction}
	UpdateVCSProvider       = Permission{ResourceType: VCSProviderResource, Action: UpdateAction}
	DeleteVCSProvider       = Permission{ResourceType: VCSProviderResource, Action: DeleteAction}
	ViewComment             = Permission{ResourceType: CommentResource, Action: ViewAction}
	CreateComment           = Permission{ResourceType: CommentResource, Action: CreateAction}
	ViewEnvironmentRule     = Permission{ResourceType: EnvironmentRuleResource, Action: ViewAction}
	CreateEnvironmentRule   = Permission{ResourceType: EnvironmentRuleResource, Action: CreateAction}
	UpdateEnvironmentRule   = Permission{ResourceType: EnvironmentRuleResource, Action: UpdateAction}
	DeleteEnvironmentRule   = Permission{ResourceType: EnvironmentRuleResource, Action: DeleteAction}
)

All possible Permissions.

Functions

func GetAssignablePermissions

func GetAssignablePermissions() []string

GetAssignablePermissions returns a list of assignable permissions.

Types

type Action

type Action string

Action is an enum representing a CRUD action.

const (
	ViewAction    Action = "view"
	CreateAction  Action = "create"
	UpdateAction  Action = "update"
	DeleteAction  Action = "delete"
	ExecuteAction Action = "execute"
	ClaimAction   Action = "claim"
	CancelAction  Action = "cancel"
)

Action constants.

func (Action) HasViewerAccess

func (p Action) HasViewerAccess() bool

HasViewerAccess returns true if Action is viewer access or greater.

type ActivityEvent

type ActivityEvent struct {
	UserID           *string
	ServiceAccountID *string
	OrganizationID   *string
	ProjectID        *string
	TargetID         *string
	Payload          []byte
	Action           ActivityEventAction
	TargetType       ActivityEventTargetType
	Metadata         ResourceMetadata
}

ActivityEvent represents an activity event.

func (*ActivityEvent) ResolveMetadata

func (a *ActivityEvent) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type ActivityEventAction

type ActivityEventAction string

ActivityEventAction represents an action that can be performed on a resource.

const (
	ActionCreate           ActivityEventAction = "CREATE"
	ActionUpdate           ActivityEventAction = "UPDATE"
	ActionDelete           ActivityEventAction = "DELETE"
	ActionStart            ActivityEventAction = "START"
	ActionRetry            ActivityEventAction = "RETRY"
	ActionCreateMembership ActivityEventAction = "CREATE_MEMBERSHIP"
	ActionRemoveMembership ActivityEventAction = "REMOVE_MEMBERSHIP"
	ActionCancel           ActivityEventAction = "CANCEL"
)

ActivityEventAction constants.

type ActivityEventCreateMembershipPayload

type ActivityEventCreateMembershipPayload struct {
	UserID           *string `json:"userId"`
	ServiceAccountID *string `json:"serviceAccountId"`
	TeamID           *string `json:"teamId"`
	Role             string  `json:"role"`
}

ActivityEventCreateMembershipPayload represents the payload for a create membership activity event.

type ActivityEventDeleteResourcePayload

type ActivityEventDeleteResourcePayload struct {
	Name *string `json:"name"`
	ID   string  `json:"id"`
	Type string  `json:"type"`
}

ActivityEventDeleteResourcePayload represents the payload for a delete resource activity event.

type ActivityEventRemoveMembershipPayload

type ActivityEventRemoveMembershipPayload struct {
	UserID           *string `json:"userId"`
	ServiceAccountID *string `json:"serviceAccountId"`
	TeamID           *string `json:"teamId"`
}

ActivityEventRemoveMembershipPayload represents the payload for a remove membership activity event.

type ActivityEventTargetType

type ActivityEventTargetType string

ActivityEventTargetType represents a type of resource that can be acted upon.

const (
	TargetRole               ActivityEventTargetType = "ROLE"
	TargetOrganization       ActivityEventTargetType = "ORGANIZATION"
	TargetProject            ActivityEventTargetType = "PROJECT"
	TargetProjectVariableSet ActivityEventTargetType = "PROJECT_VARIABLE_SET"
	TargetGlobal             ActivityEventTargetType = "GLOBAL"
	TargetMembership         ActivityEventTargetType = "MEMBERSHIP"
	TargetAgent              ActivityEventTargetType = "AGENT"
	TargetPipelineTemplate   ActivityEventTargetType = "PIPELINE_TEMPLATE"
	TargetPipeline           ActivityEventTargetType = "PIPELINE"
	TargetTeam               ActivityEventTargetType = "TEAM"
	TargetEnvironment        ActivityEventTargetType = "ENVIRONMENT"
	TargetServiceAccount     ActivityEventTargetType = "SERVICE_ACCOUNT"
	TargetApprovalRule       ActivityEventTargetType = "APPROVAL_RULE"
	TargetLifecycleTemplate  ActivityEventTargetType = "LIFECYCLE_TEMPLATE"
	TargetReleaseLifecycle   ActivityEventTargetType = "RELEASE_LIFECYCLE"
	TargetRelease            ActivityEventTargetType = "RELEASE"
	TargetPlugin             ActivityEventTargetType = "PLUGIN"
	TargetPluginVersion      ActivityEventTargetType = "PLUGIN_VERSION"
	TargetComment            ActivityEventTargetType = "COMMENT"
	TargetUser               ActivityEventTargetType = "USER"
	TargetVCSProvider        ActivityEventTargetType = "VCS_PROVIDER"
	TargetThread             ActivityEventTargetType = "THREAD"
	TargetEnvironmentRule    ActivityEventTargetType = "ENVIRONMENT_RULE"
)

ActivityEventTargetType constants.

func (ActivityEventTargetType) String

func (t ActivityEventTargetType) String() string

String returns the string representation of the activity event target type.

type ActivityEventUpdateMembershipPayload

type ActivityEventUpdateMembershipPayload struct {
	PrevRole string `json:"prevRole"`
	NewRole  string `json:"newRole"`
}

ActivityEventUpdateMembershipPayload represents the payload for a update membership activity event.

type ActivityEventUpdateReleasePayload

type ActivityEventUpdateReleasePayload struct {
	ID         string `json:"id"`
	ChangeType string `json:"changeType"`
	Type       string `json:"type"`
}

ActivityEventUpdateReleasePayload represents the payload for a update release activity event.

type ActivityEventUpdateTeamPayload

type ActivityEventUpdateTeamPayload struct {
	UserID     string `json:"userId"`
	ChangeType string `json:"changeType"`
	Maintainer bool   `json:"maintainer"`
}

ActivityEventUpdateTeamPayload represents the payload for a update team activity event.

type Agent

type Agent struct {
	OrganizationID  *string
	Type            AgentType
	Name            string
	Description     string
	CreatedBy       string
	Metadata        ResourceMetadata
	Tags            []string
	Disabled        bool
	RunUntaggedJobs bool
}

Agent is responsible for claiming and executing jobs.

func (*Agent) GetOrgName

func (a *Agent) GetOrgName() string

GetOrgName returns the org name for the agent

func (*Agent) ResolveMetadata

func (a *Agent) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Agent) Validate

func (a *Agent) Validate() error

Validate returns an error if the model is not valid

type AgentSession

type AgentSession struct {
	LastContactTimestamp time.Time
	AgentID              string
	Metadata             ResourceMetadata
	ErrorCount           int
	Internal             bool
}

AgentSession represents a session for an agent

func (*AgentSession) Active

func (a *AgentSession) Active() bool

Active returns true if the session has received a heartbeat within the last heartbeat interval

func (*AgentSession) ResolveMetadata

func (a *AgentSession) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type AgentType

type AgentType string

AgentType constant

const (
	OrganizationAgent AgentType = "ORGANIZATION"
	SharedAgent       AgentType = "SHARED"
)

AgentType constants

func (AgentType) Equals

func (a AgentType) Equals(other AgentType) bool

Equals returns true if the agent type is equal to the other agent type

type ApprovalRule

type ApprovalRule struct {
	Scope             ScopeType
	OrgID             string  // required (global scope not allowed)
	ProjectID         *string // required if project scope; must be nil if org scope
	Name              string
	Description       string
	CreatedBy         string
	Metadata          ResourceMetadata
	TeamIDs           []string
	UserIDs           []string
	ServiceAccountIDs []string
	ApprovalsRequired int
}

ApprovalRule represents a rule that can be used to control who can approve a task

func (*ApprovalRule) ResolveMetadata

func (a *ApprovalRule) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*ApprovalRule) Validate

func (a *ApprovalRule) Validate() error

Validate returns an error if the model is not valid

type BoundClaimsType

type BoundClaimsType string

BoundClaimsType defines the type of comparison to be used for bound claims

const (
	// BoundClaimsTypeString is used for exact string matching
	BoundClaimsTypeString BoundClaimsType = "STRING"
	// BoundClaimsTypeGlob is used for glob pattern matching (i.e. a wildcard character can be used within the claim value)
	BoundClaimsTypeGlob BoundClaimsType = "GLOB"
)

type Comment

type Comment struct {
	ThreadID         string
	UserID           *string
	ServiceAccountID *string
	Text             string
	Metadata         ResourceMetadata
}

Comment represents a Phobos comment.

func (*Comment) ResolveMetadata

func (c *Comment) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Comment) Validate

func (c *Comment) Validate() error

Validate validates the model.

type DefaultRoleID

type DefaultRoleID string

DefaultRoleID represents the static UUIDs for default Phobos roles.

const (
	OwnerRoleID          DefaultRoleID = "3e8eb414-4504-4dc5-ad81-2f0d20db6ee4"
	ReleaseManagerRoleID DefaultRoleID = "c78c6d31-465f-4d16-a365-51f10a4ca37d"
	DeveloperRoleID      DefaultRoleID = "d50e782f-c82a-4e18-b68b-c7eb176f4e5e"
	ViewerRoleID         DefaultRoleID = "2e240dba-ee81-4f0b-bd97-b8d8b15b9119"
)

DefaultRoleID constants.

func (DefaultRoleID) Equals

func (d DefaultRoleID) Equals(want string) bool

Equals returns true if the both IDs are the same.

func (DefaultRoleID) IsDefaultRole

func (d DefaultRoleID) IsDefaultRole() bool

IsDefaultRole returns true if ID belongs to a default role.

func (DefaultRoleID) Permissions

func (d DefaultRoleID) Permissions() ([]Permission, bool)

Permissions returns the Permission set for a default Phobos role.

func (DefaultRoleID) String

func (d DefaultRoleID) String() string

String returns the ID as a string.

type Environment

type Environment struct {
	ProjectID   string
	Name        string
	Description string
	CreatedBy   string
	Metadata    ResourceMetadata
}

Environment is responsible for claiming and executing jobs.

func (*Environment) ResolveMetadata

func (e *Environment) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Environment) Validate

func (e *Environment) Validate() error

Validate returns an error if the model is not valid

type EnvironmentRule

type EnvironmentRule struct {
	Metadata          ResourceMetadata
	CreatedBy         string
	Scope             ScopeType
	OrgID             string  // required
	ProjectID         *string // required if project scope; must be nil if org scope
	EnvironmentName   string
	TeamIDs           []string
	UserIDs           []string
	ServiceAccountIDs []string
	RoleIDs           []string
}

EnvironmentRule represents a rule that can be used to control who can approve a task

func (*EnvironmentRule) ResolveMetadata

func (e *EnvironmentRule) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*EnvironmentRule) Validate

func (e *EnvironmentRule) Validate() error

Validate returns an error if the model is not valid

type Job

type Job struct {
	Timestamps               JobTimestamps
	Data                     interface{}
	AgentType                *string
	ForceCanceledBy          *string
	AgentID                  *string
	CancelRequestedTimestamp *time.Time
	AgentName                *string

	Type           JobType
	ProjectID      string
	Metadata       ResourceMetadata
	Tags           []string
	MaxJobDuration int32
	ForceCanceled  bool
	// contains filtered or unexported fields
}

Job represents a unit of work that is completed as part of a pipeline or lifecycle

func (*Job) ForceCancel

func (j *Job) ForceCancel(canceledBy string) error

ForceCancel forcefully cancels the job

func (*Job) GetForceCancelAvailableAt

func (j *Job) GetForceCancelAvailableAt() time.Time

GetForceCancelAvailableAt returns the time when this job can be forcefully canceled

func (*Job) GetOrgName

func (j *Job) GetOrgName() string

GetOrgName returns the org name for the job

func (*Job) GetStatus

func (j *Job) GetStatus() JobStatus

GetStatus returns the status of the job

func (*Job) GracefullyCancel

func (j *Job) GracefullyCancel() error

GracefullyCancel gracefully cancels the job

func (*Job) ResolveMetadata

func (j *Job) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Job) SetStatus

func (j *Job) SetStatus(status JobStatus) error

SetStatus sets the status of the job

type JobStatus

type JobStatus string

JobStatus type

const (
	JobQueued    JobStatus = "queued"
	JobPending   JobStatus = "pending"
	JobRunning   JobStatus = "running"
	JobFailed    JobStatus = "failed"
	JobSucceeded JobStatus = "succeeded"
	JobCanceled  JobStatus = "canceled"
	JobCanceling JobStatus = "canceling"
)

Job Status Constants

func (JobStatus) IsFinishedStatus

func (s JobStatus) IsFinishedStatus() bool

IsFinishedStatus returns true if the job is finished (failed, succeeded, or canceled)

type JobTaskData

type JobTaskData struct {
	PipelineID string `json:"pipelineId"`
	TaskPath   string `json:"taskPath"`
}

JobTaskData is the data for a job of type task

type JobTimestamps

type JobTimestamps struct {
	QueuedTimestamp   *time.Time
	PendingTimestamp  *time.Time
	RunningTimestamp  *time.Time
	FinishedTimestamp *time.Time
}

JobTimestamps includes the timestamp for each job state change

type JobType

type JobType string

JobType indicates the type of job

const (
	JobTaskType JobType = "task"
)

Job Types Constants

type LifecycleTemplate

type LifecycleTemplate struct {
	CreatedBy      string
	Scope          ScopeType
	OrganizationID string  // required (global scope not allowed)
	ProjectID      *string // required if project scope; must be nil if org scope
	Status         LifecycleTemplateStatus
	Metadata       ResourceMetadata
}

LifecycleTemplate represents a Phobos lifecycle template.

func (*LifecycleTemplate) ResolveMetadata

func (o *LifecycleTemplate) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type LifecycleTemplateStatus

type LifecycleTemplateStatus string

LifecycleTemplateStatus represents the status of a Phobos lifecycle template.

const (
	LifecycleTemplatePending  LifecycleTemplateStatus = "PENDING"
	LifecycleTemplateUploaded LifecycleTemplateStatus = "UPLOADED"
)

LifecycleTemplateStatus values.

type LogStream

type LogStream struct {
	JobID          *string
	AgentSessionID *string
	Metadata       ResourceMetadata
	Size           int
	Completed      bool
}

LogStream represents a stream of logs

func (*LogStream) ResolveMetadata

func (o *LogStream) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type Membership

type Membership struct {
	UserID           *string
	TeamID           *string
	ServiceAccountID *string
	ProjectID        *string
	OrganizationID   *string
	RoleID           string
	Scope            ScopeType
	Metadata         ResourceMetadata
}

Membership represents an association between a member and an organization or project.

func (*Membership) ResolveMetadata

func (m *Membership) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type Metric

type Metric struct {
	Tags            map[MetricTagName]string
	PipelineID      *string
	ReleaseID       *string
	ProjectID       *string
	OrganizationID  *string
	EnvironmentName *string
	Name            MetricName
	Metadata        ResourceMetadata
	Value           float64
}

Metric represents a resource metric.

func (*Metric) ResolveMetadata

func (m *Metric) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type MetricName

type MetricName string

MetricName represents the type of the metric.

const (
	// MetricPipelineCompleted is the number of completed pipelines
	MetricPipelineCompleted MetricName = "PIPELINE_COMPLETED"
	// MetricPipelineDuration is the time it takes for a pipeline to complete
	MetricPipelineDuration MetricName = "PIPELINE_DURATION"
	// MetricDeploymentRecoveryTime is the time it takes for a deployment to recover after it has failed
	MetricDeploymentRecoveryTime MetricName = "DEPLOYMENT_RECOVERY_TIME"
	// MetricDeploymentUpdated is the number of updates to a deployment
	MetricDeploymentUpdated MetricName = "DEPLOYMENT_UPDATED"
	// MetricPipelineLeadTime is the time from when a pipeline is created to when it is completed
	MetricPipelineLeadTime MetricName = "PIPELINE_LEAD_TIME"
	// MetricApprovalRequestWaitTime is the time it takes for an approval request to be approved
	MetricApprovalRequestWaitTime MetricName = "APPROVAL_REQUEST_WAIT_TIME"
	// MetricApprovalRequestCreated is the number of created approval requests
	MetricApprovalRequestCreated MetricName = "APPROVAL_REQUEST_CREATED"
	// MetricApprovalRequestCompleted is the number of completed approval requests
	MetricApprovalRequestCompleted MetricName = "APPROVAL_REQUEST_COMPLETED"
)

MetricName constants.

type MetricTagName

type MetricTagName string

MetricTagName represents the supported metric tag names

const (
	// MetricTagNamePipelineType is the type of the pipeline
	MetricTagNamePipelineType MetricTagName = "PIPELINE_TYPE"
	// MetricTagNamePipelineStatus is the status of the pipeline
	MetricTagNamePipelineStatus MetricTagName = "PIPELINE_STATUS"
	// MetricTagNameApprovalTargetType is the type of the approval
	MetricTagNameApprovalTargetType MetricTagName = "APPROVAL_TARGET_TYPE"
	// MetricTagNameReleaseLifecycle is the name of the release lifecycle
	MetricTagNameReleaseLifecycle MetricTagName = "RELEASE_LIFECYCLE"
)

type NestedPipeline

type NestedPipeline struct {
	EnvironmentName    *string
	ScheduledStartTime *time.Time
	LatestPipelineID   string
	Name               string
	Path               string
	Status             statemachine.NodeStatus
	ApprovalStatus     PipelineApprovalStatus
	Dependencies       []string
}

NestedPipeline represents a nested pipeline

type OIDCTrustPolicy

type OIDCTrustPolicy struct {
	BoundClaimsType BoundClaimsType
	BoundClaims     map[string]string
	Issuer          string
}

OIDCTrustPolicy defined the IDP that can be used for logging into the service account

type Organization

type Organization struct {
	Name        string
	Description string
	CreatedBy   string
	Metadata    ResourceMetadata
}

Organization represents a Phobos organization which users can belong to

func (*Organization) ResolveMetadata

func (o *Organization) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Organization) Validate

func (o *Organization) Validate() error

Validate returns an error if the model is not valid

type Permission

type Permission struct {
	ResourceType ResourceType `json:"resourceType"`
	Action       Action       `json:"action"`
}

Permission represents a level of access a subject has to a Phobos resource.

func ParsePermissions

func ParsePermissions(perms []string) ([]Permission, error)

ParsePermissions parses and normalizes a slice of permission strings and extracts a Permission that adheres to the format resource_type:action.

func (*Permission) GTE

func (p *Permission) GTE(want *Permission) bool

GTE returns true if permission available is >= wanted permission.

func (*Permission) IsAssignable

func (p *Permission) IsAssignable() bool

IsAssignable returns true if permission is assignable to a role.

func (*Permission) String

func (p *Permission) String() string

String returns the Permission as <resource_type:action> string.

type Pipeline

type Pipeline struct {
	ReleaseID              *string
	ParentPipelineID       *string
	ParentPipelineNodePath *string
	EnvironmentName        *string
	CreatedBy              string
	ProjectID              string
	PipelineTemplateID     string
	ApprovalStatus         PipelineApprovalStatus
	When                   PipelineWhenCondition
	Type                   PipelineType
	Status                 statemachine.NodeStatus
	Timestamps             PipelineTimestamps
	Metadata               ResourceMetadata
	Stages                 []*PipelineStage
	Annotations            []*PipelineAnnotation
	ApprovalRuleIDs        []string
	Superseded             bool
}

Pipeline represents a Phobos pipeline.

func (*Pipeline) BuildStateMachine

func (p *Pipeline) BuildStateMachine() *statemachine.StateMachine

BuildStateMachine builds a state machine based on the current state of the pipeline graph

func (*Pipeline) CancelNode

func (p *Pipeline) CancelNode(nodePath string, force bool) ([]statemachine.NodeStatusChange, error)

CancelNode cancels the pipeline node

func (*Pipeline) GetAction

func (p *Pipeline) GetAction(path string) (*PipelineAction, bool)

GetAction returns a pipeline action by its path

func (*Pipeline) GetNestedPipeline

func (p *Pipeline) GetNestedPipeline(path string) (*NestedPipeline, bool)

GetNestedPipeline returns a nested pipeline by its path

func (*Pipeline) GetOrgName

func (p *Pipeline) GetOrgName() string

GetOrgName returns the org name for the pipeline

func (*Pipeline) GetProjectName

func (p *Pipeline) GetProjectName() string

GetProjectName returns the project name for the pipeline

func (*Pipeline) GetStage

func (p *Pipeline) GetStage(path string) (*PipelineStage, bool)

GetStage returns a pipeline stage by its path

func (*Pipeline) GetTask

func (p *Pipeline) GetTask(path string) (*PipelineTask, bool)

GetTask returns a pipeline task by its path

func (*Pipeline) ResolveMetadata

func (p *Pipeline) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Pipeline) SetNodeStatus

func (p *Pipeline) SetNodeStatus(nodePath string, status statemachine.NodeStatus) ([]statemachine.NodeStatusChange, error)

SetNodeStatus sets the status of a node in the pipeline

func (*Pipeline) SetStatus

SetStatus sets the status of the pipeline

func (*Pipeline) Validate

func (p *Pipeline) Validate() error

Validate validates the pipeline model

type PipelineAction

type PipelineAction struct {
	Name       string
	PluginName string
	ActionName string
	Status     statemachine.NodeStatus
	Path       string
}

PipelineAction defines an action that will be executed using a provider plugin

type PipelineActionOutput

type PipelineActionOutput struct {
	Name       string
	PipelineID string
	ActionPath string
	Metadata   ResourceMetadata
	Value      []byte
	Type       []byte
}

PipelineActionOutput defines an output for a pipeline action

type PipelineAnnotation

type PipelineAnnotation struct {
	Link  *string
	Key   string
	Value string
}

PipelineAnnotation represents an annotation for a pipeline

type PipelineApproval

type PipelineApproval struct {
	UserID           *string
	ServiceAccountID *string
	TaskPath         *string
	PipelineID       string
	Type             PipelineApprovalType
	Metadata         ResourceMetadata
	ApprovalRuleIDs  []string
}

PipelineApproval defines an approval for a pipeline or task.

func (*PipelineApproval) ResolveMetadata

func (p *PipelineApproval) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type PipelineApprovalStatus

type PipelineApprovalStatus string

PipelineApprovalStatus represents the approval status of a pipeline node.

const (
	ApprovalNotRequired PipelineApprovalStatus = "NOT_REQUIRED"
	ApprovalPending     PipelineApprovalStatus = "PENDING"
	ApprovalApproved    PipelineApprovalStatus = "APPROVED"
)

ApprovalStatus enums.

type PipelineApprovalType

type PipelineApprovalType string

PipelineApprovalType represents the pipeline node type the approval is for.

const (
	ApprovalTypeTask     PipelineApprovalType = "TASK"
	ApprovalTypePipeline PipelineApprovalType = "PIPELINE" // nested or non-nested
)

ApprovalType enums.

type PipelineStage

type PipelineStage struct {
	NestedPipelines []*NestedPipeline
	Path            string
	Name            string
	Status          statemachine.NodeStatus
	Tasks           []*PipelineTask
}

PipelineStage represents a stage within a pipeline

type PipelineTask

type PipelineTask struct {
	// optional approval rule IDs
	ApprovalRuleIDs []string
	// interval between retries when this is a repeated task
	Interval *time.Duration
	// latest job associated with this task
	LatestJobID *string
	// max attempts when retrying a task
	MaxAttempts *int
	// path is the path of the task within the pipeline
	Path string
	// name of the task
	Name string
	// status of the task
	Status statemachine.NodeStatus
	// approval status of the task
	ApprovalStatus PipelineApprovalStatus
	// when condition specifies when the task should be executed
	When PipelineTaskWhenCondition
	// scheduled start time for the task (optional), this field can only
	// be set when the task is manual
	ScheduledStartTime *time.Time
	// actions are the actions that will be executed by the task
	Actions []*PipelineAction
	// list of tags to restrict which agents can run jobs for this task
	AgentTags []string
	// Dependencies are tasks needed by this task (within the same stage)
	Dependencies []string
	// indicates if the task has a success condition
	HasSuccessCondition bool
}

PipelineTask is a task within a pipeline

type PipelineTaskWhenCondition

type PipelineTaskWhenCondition string

PipelineTaskWhenCondition defines the possible conditions for a task to be executed

const (
	AutoPipelineTask     PipelineTaskWhenCondition = "auto"
	ManualPipelineTask   PipelineTaskWhenCondition = "manual"
	RepeatedPipelineTask PipelineTaskWhenCondition = "repeated"
)

PipelineTaskWhenCondition Constants

type PipelineTemplate

type PipelineTemplate struct {
	CreatedBy       string
	ProjectID       string
	Status          PipelineTemplateStatus
	Name            *string
	SemanticVersion *string
	Metadata        ResourceMetadata
	Versioned       bool
	Latest          bool
}

PipelineTemplate represents a Phobos pipeline template.

func (*PipelineTemplate) ResolveMetadata

func (o *PipelineTemplate) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*PipelineTemplate) Validate

func (o *PipelineTemplate) Validate() error

Validate validates the pipeline template.

type PipelineTemplateStatus

type PipelineTemplateStatus string

PipelineTemplateStatus represents the status of a Phobos pipeline template.

const (
	PipelineTemplatePending  PipelineTemplateStatus = "pending"
	PipelineTemplateUploaded PipelineTemplateStatus = "uploaded"
)

PipelineTemplateStatus values.

type PipelineTimestamps

type PipelineTimestamps struct {
	StartedTimestamp   *time.Time
	CompletedTimestamp *time.Time
}

PipelineTimestamps includes the timestamp for each pipeline

type PipelineType

type PipelineType string

PipelineType represents the type of a pipeline

const (
	// RunbookPipelineType is a pipeline that is executed on demand and is not associated with an environment
	RunbookPipelineType PipelineType = "RUNBOOK"
	// ReleaseLifecyclePipelineType is a pipeline that is executed as part of a release lifecycle
	ReleaseLifecyclePipelineType PipelineType = "RELEASE_LIFECYCLE"
	// NestedPipelineType is a pipeline that is executed as a nested pipeline
	NestedPipelineType PipelineType = "NESTED"
	// DeploymentPipelineType is a pipeline that is executed as part of a deployment
	DeploymentPipelineType PipelineType = "DEPLOYMENT"
)

PipelineType constants

type PipelineWhenCondition

type PipelineWhenCondition string

PipelineWhenCondition defines the possible conditions for a pipeline to be executed

const (
	AutoPipeline   PipelineWhenCondition = "auto"
	ManualPipeline PipelineWhenCondition = "manual"
)

PipelineWhenCondition Constants

type Plugin

type Plugin struct {
	CreatedBy      string
	Name           string
	OrganizationID string
	RepositoryURL  string
	Metadata       ResourceMetadata
	Private        bool
}

Plugin represents a Phobos plugin often used to interface with external services or extend Phobos functionality.

func (*Plugin) GetOrgName

func (p *Plugin) GetOrgName() string

GetOrgName returns the org name

func (*Plugin) ResolveMetadata

func (p *Plugin) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Plugin) Validate

func (p *Plugin) Validate() error

Validate returns an error if the model is not valid

type PluginPlatform

type PluginPlatform struct {
	PluginVersionID string
	OperatingSystem string
	Architecture    string
	SHASum          string
	Filename        string
	CreatedBy       string
	Metadata        ResourceMetadata
	BinaryUploaded  bool
}

PluginPlatform represents a support platform for a plugin.

func (*PluginPlatform) ResolveMetadata

func (p *PluginPlatform) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type PluginVersion

type PluginVersion struct {
	DocFiles        map[string]*PluginVersionDocFileMetadata
	CreatedBy       string
	PluginID        string
	SemanticVersion string
	Metadata        ResourceMetadata
	Protocols       []string
	SHASumsUploaded bool
	ReadmeUploaded  bool
	SchemaUploaded  bool
	Latest          bool
}

PluginVersion represents a version of a Phobos plugin.

func (*PluginVersion) ResolveMetadata

func (p *PluginVersion) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*PluginVersion) Validate

func (p *PluginVersion) Validate() error

Validate checks if the plugin version is valid.

type PluginVersionDocCategory

type PluginVersionDocCategory string

PluginVersionDocCategory represents the category of a plugin version documentation file.

const (
	PluginVersionDocCategoryOverview PluginVersionDocCategory = "OVERVIEW"
	PluginVersionDocCategoryAction   PluginVersionDocCategory = "ACTION"
	PluginVersionDocCategoryGuide    PluginVersionDocCategory = "GUIDE"
)

PluginVersionDocCategory constants

type PluginVersionDocFileMetadata

type PluginVersionDocFileMetadata struct {
	Title       string                   `json:"title"`
	Category    PluginVersionDocCategory `json:"category"`
	Subcategory string                   `json:"subcategory"`
	Name        string                   `json:"name"`
	FilePath    string                   `json:"file_path"`
}

PluginVersionDocFileMetadata represents the metadata of a plugin version documentation file.

func (*PluginVersionDocFileMetadata) Validate

func (p *PluginVersionDocFileMetadata) Validate() error

Validate validates the plugin version documentation file metadata.

type Project

type Project struct {
	Name        string
	Description string
	CreatedBy   string
	OrgID       string
	Metadata    ResourceMetadata
}

Project represents a Phobos project.

func (*Project) GetOrgName

func (o *Project) GetOrgName() string

GetOrgName returns the org name for the project

func (*Project) ResolveMetadata

func (o *Project) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Project) Validate

func (o *Project) Validate() error

Validate returns an error if the model is not valid

type ProjectVariable

type ProjectVariable struct {
	Key              string
	Value            string
	EnvironmentScope string
	PipelineType     PipelineType
	CreatedBy        string
	ProjectID        string
	Metadata         ResourceMetadata
}

ProjectVariable represents a Phobos project variable

func (*ProjectVariable) FQN

func (pv *ProjectVariable) FQN() string

FQN returns a fully qualified name for the project variable

func (*ProjectVariable) ResolveMetadata

func (pv *ProjectVariable) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*ProjectVariable) Validate

func (pv *ProjectVariable) Validate() error

Validate returns an error if the model is not valid

type ProjectVariableSet

type ProjectVariableSet struct {
	ProjectID string
	Revision  string
	Latest    bool
	Metadata  ResourceMetadata
}

ProjectVariableSet represents a Phobos project variable set

func (*ProjectVariableSet) ResolveMetadata

func (pvs *ProjectVariableSet) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type Release

type Release struct {
	DueDate            *time.Time
	SemanticVersion    string
	ProjectID          string
	CreatedBy          string
	LifecyclePRN       string
	Metadata           ResourceMetadata
	UserParticipantIDs []string
	TeamParticipantIDs []string
	PreRelease         bool
	Latest             bool
}

Release is composed of a set of assets, a snapshot of the automation used to deploy the assets, and the state of the automation

func (*Release) ResolveMetadata

func (r *Release) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Release) Validate

func (r *Release) Validate() error

Validate validates the model.

type ReleaseLifecycle

type ReleaseLifecycle struct {
	Scope               ScopeType
	OrganizationID      string  // required (global scope not allowed)
	ProjectID           *string // required if project scope; must be nil if org scope
	Name                string
	CreatedBy           string
	LifecycleTemplateID string
	EnvironmentNames    []string
	Metadata            ResourceMetadata
}

ReleaseLifecycle represents a Phobos release lifecycle.

func (*ReleaseLifecycle) GetOrgName

func (r *ReleaseLifecycle) GetOrgName() string

GetOrgName returns the org name

func (*ReleaseLifecycle) ResolveMetadata

func (r *ReleaseLifecycle) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*ReleaseLifecycle) Validate

func (r *ReleaseLifecycle) Validate() error

Validate validates the ReleaseLifecycle model

type ResourceLimit

type ResourceLimit struct {
	Name     string
	Metadata ResourceMetadata
	Value    int
}

ResourceLimit represents a resource limit

type ResourceMetadata

type ResourceMetadata struct {
	CreationTimestamp    *time.Time `json:"createdAt"`
	LastUpdatedTimestamp *time.Time `json:"updatedAt,omitempty" `
	ID                   string     `json:"id"`
	PRN                  string     `json:"prn"`
	Version              int        `json:"version"`
}

ResourceMetadata contains metadata for a particular resource

type ResourceType

type ResourceType string

ResourceType is an enum representing a Phobos resource type.

const (
	OrganizationResource         ResourceType = "organization"
	MembershipResource           ResourceType = "membership"
	ProjectResource              ResourceType = "project"
	ProjectVariableSetResource   ResourceType = "project_variable_set"
	ProjectVariableResource      ResourceType = "project_variable"
	JobResource                  ResourceType = "job"
	TeamResource                 ResourceType = "team"
	UserResource                 ResourceType = "user"
	PipelineTemplateResource     ResourceType = "pipeline_template"
	PipelineResource             ResourceType = "pipeline"
	AgentResource                ResourceType = "agent"
	AgentSessionResource         ResourceType = "agent_session"
	EnvironmentResource          ResourceType = "environment"
	ServiceAccountResource       ResourceType = "service_account"
	RoleResource                 ResourceType = "role"
	TeamMemberResource           ResourceType = "team_member"
	ResourceLimitResource        ResourceType = "resource_limit"
	SCIMTokenResource            ResourceType = "scim_token"
	LogStreamResource            ResourceType = "log_stream"
	PipelineActionOutputResource ResourceType = "pipeline_action_output"
	PipelineApprovalResource     ResourceType = "pipeline_approval"
	ApprovalRuleResource         ResourceType = "approval_rule"
	LifecycleTemplateResource    ResourceType = "lifecycle_template"
	ReleaseLifecycleResource     ResourceType = "release_lifecycle"
	ReleaseResource              ResourceType = "release"
	VariableResource             ResourceType = "variable"
	ActivityEventResource        ResourceType = "activity_event"
	DeploymentResource           ResourceType = "deployment"
	CommentResource              ResourceType = "comment"
	PluginResource               ResourceType = "plugin"
	PluginVersionResource        ResourceType = "plugin_version"
	PluginPlatformResource       ResourceType = "plugin_platform"
	ToDoItemResource             ResourceType = "todo_item"
	VCSProviderResource          ResourceType = "vcs_provider"
	ThreadResource               ResourceType = "thread"
	EnvironmentRuleResource      ResourceType = "environment_rule"
	MetricResource               ResourceType = "metric"
)

ResourceType constants.

func (ResourceType) BuildPRN

func (r ResourceType) BuildPRN(a ...string) string

BuildPRN builds a PRN from a resource type and a list of path parts.

func (ResourceType) ResourcePathFromPRN

func (r ResourceType) ResourcePathFromPRN(v string) (string, error)

ResourcePathFromPRN returns the resource path from a PRN.

type Role

type Role struct {
	Name        string
	Description string
	CreatedBy   string

	Metadata ResourceMetadata
	// contains filtered or unexported fields
}

Role defines a subject's ability to access or modify resources within Phobos. It provides a set of permissions that dictate which resources can be viewed or modified.

func (*Role) GetPermissions

func (r *Role) GetPermissions() []Permission

GetPermissions returns permissions for a role.

func (*Role) ResolveMetadata

func (r *Role) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Role) SetPermissions

func (r *Role) SetPermissions(perms []Permission)

SetPermissions sets permissions for a role.

func (*Role) Validate

func (r *Role) Validate() error

Validate returns an error if the model is not valid

type SCIMToken

type SCIMToken struct {
	Nonce     string
	CreatedBy string
	Metadata  ResourceMetadata
}

SCIMToken represents a SCIM token.

type ScopeType

type ScopeType string

ScopeType defines an enum representing the level at which a resource is available.

const (
	GlobalScope       ScopeType = "GLOBAL"
	OrganizationScope ScopeType = "ORGANIZATION"
	ProjectScope      ScopeType = "PROJECT"
)

Scope constants

func (ScopeType) Equals

func (s ScopeType) Equals(o ScopeType) bool

Equals returns true if both scopes are equal.

type ServiceAccount

type ServiceAccount struct {
	Metadata          ResourceMetadata
	Scope             ScopeType
	OrganizationID    *string // required if org or project scope
	ProjectID         *string // required if project scope; must be nil if org scope
	Name              string
	Description       string
	CreatedBy         string
	OIDCTrustPolicies []OIDCTrustPolicy
}

ServiceAccount provides M2M authentication

func (*ServiceAccount) ResolveMetadata

func (s *ServiceAccount) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*ServiceAccount) Validate

func (s *ServiceAccount) Validate() error

Validate returns an error if the model is not valid

type Team

type Team struct {
	SCIMExternalID *string
	Name           string
	Description    string
	Metadata       ResourceMetadata
}

Team represents a team of (human) users

func (*Team) ResolveMetadata

func (t *Team) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*Team) Validate

func (t *Team) Validate() error

Validate returns an error if the model is not valid

type TeamMember

type TeamMember struct {
	UserID       string
	TeamID       string
	Metadata     ResourceMetadata
	IsMaintainer bool
}

TeamMember represents an association between a (human) user and a Team

func (*TeamMember) ResolveMetadata

func (t *TeamMember) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type Thread

type Thread struct {
	PipelineID *string
	ReleaseID  *string
	Metadata   ResourceMetadata
}

Thread represents a collection of comments.

func (*Thread) ResolveMetadata

func (t *Thread) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type ToDoItem

type ToDoItem struct {
	Payload         []byte
	UserIDs         []string
	TeamIDs         []string
	ResolvedByUsers []string
	ProjectID       *string
	OrganizationID  string
	TargetID        string
	TargetType      ToDoItemTargetType
	Metadata        ResourceMetadata
	AutoResolved    bool
	Resolvable      bool
}

ToDoItem represents a TODO item resource.

func (*ToDoItem) IsResolved

func (t *ToDoItem) IsResolved(userID string) bool

IsResolved returns true if the item was resolved.

func (*ToDoItem) ResolveMetadata

func (t *ToDoItem) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type ToDoItemPipelineTaskApprovalPayload

type ToDoItemPipelineTaskApprovalPayload struct {
	TaskPath string `json:"taskPath"`
}

ToDoItemPipelineTaskApprovalPayload represents the payload of a pipeline task approval item.

type ToDoItemTargetType

type ToDoItemTargetType string

ToDoItemTargetType represents the target type of a TODO item.

const (
	PipelineApprovalTarget ToDoItemTargetType = "PIPELINE_APPROVAL"
	TaskApprovalTarget     ToDoItemTargetType = "TASK_APPROVAL"
)

ToDoItemTargetType constants.

type User

type User struct {
	SCIMExternalID *string
	Username       string
	Email          string
	Metadata       ResourceMetadata
	Admin          bool
	Active         bool
}

User represents a human user account

func (*User) ResolveMetadata

func (u *User) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

type VCSProvider

type VCSProvider struct {
	OAuthAccessTokenExpiresAt *time.Time
	URL                       url.URL
	CreatedBy                 string
	Name                      string
	Description               string
	OrganizationID            string
	Type                      VCSProviderType
	Scope                     ScopeType
	AuthType                  VCSProviderAuthType
	OAuthClientSecret         *string
	OAuthClientID             *string
	OAuthState                *string
	OAuthAccessToken          *string
	OAuthRefreshToken         *string
	PersonalAccessToken       *string
	ProjectID                 *string
	Metadata                  ResourceMetadata
}

VCSProvider represents a Version Control System provider.

func (*VCSProvider) GetOrgName

func (v *VCSProvider) GetOrgName() string

GetOrgName returns the org name

func (*VCSProvider) ResolveMetadata

func (v *VCSProvider) ResolveMetadata(key string) (string, error)

ResolveMetadata resolves the metadata fields for cursor-based pagination

func (*VCSProvider) Validate

func (v *VCSProvider) Validate() error

Validate returns an error if the model is not valid

type VCSProviderAuthType

type VCSProviderAuthType string

VCSProviderAuthType represents the auth type a VCS provider uses.

const (
	AccessTokenType VCSProviderAuthType = "ACCESS_TOKEN"
	OAuthType       VCSProviderAuthType = "OAUTH"
)

VCSProviderAuthType enums.

type VCSProviderType

type VCSProviderType string

VCSProviderType represents the vcs provider type.

const (
	GitHubType VCSProviderType = "GITHUB"
	GitLabType VCSProviderType = "GITLAB"
)

VCSProviderType enums.

type VariableCategory

type VariableCategory string

VariableCategory is the type of variable category

const (
	HCLVariable         VariableCategory = "HCL"
	EnvironmentVariable VariableCategory = "ENVIRONMENT"
)

VariableCategory constants

Jump to

Keyboard shortcuts

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