models

package
v0.0.0-...-64a628e Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BusinessCaseStatusOPEN captures enum value "OPEN"
	BusinessCaseStatusOPEN BusinessCaseStatus = "OPEN"
	// BusinessCaseStatusCLOSED captures enum value "CLOSED"
	BusinessCaseStatusCLOSED BusinessCaseStatus = "CLOSED"

	// LifecycleCostPhaseDEVELOPMENT captures enum value "Development"
	LifecycleCostPhaseDEVELOPMENT LifecycleCostPhase = "Development"
	// LifecycleCostPhaseOPERATIONMAINTENANCE captures enum value "Operations and Maintenance"
	LifecycleCostPhaseOPERATIONMAINTENANCE LifecycleCostPhase = "Operations and Maintenance"
	// LifecycleCostPhaseHELPDESK captures enum value "Help desk/call center"
	LifecycleCostPhaseHELPDESK LifecycleCostPhase = "Help desk/call center"
	// LifecycleCostPhaseSOFTWARE captures enum value "Software licenses"
	LifecycleCostPhaseSOFTWARE LifecycleCostPhase = "Software licenses"
	// LifecycleCostPhasePLANNING captures enum value "Planning, support, and professional services"
	LifecycleCostPhasePLANNING LifecycleCostPhase = "Planning, support, and professional services"
	// LifecycleCostPhaseINFRASTRUCTURE captures enum value "Infrastructure"
	LifecycleCostPhaseINFRASTRUCTURE LifecycleCostPhase = "Infrastructure"
	// LifecycleCostPhaseOIT captures enum value "OIT Services, tools, and pilots"
	LifecycleCostPhaseOIT LifecycleCostPhase = "OIT Services, tools, and pilots"
	// LifecycleCostPhaseOTHER captures enum value "Other"
	LifecycleCostPhaseOTHER LifecycleCostPhase = "Other"

	// LifecycleCostSolutionPREFERRED captures enum value "Preferred"
	LifecycleCostSolutionPREFERRED LifecycleCostSolution = "Preferred"
	// LifecycleCostSolutionA captures enum value "A"
	LifecycleCostSolutionA LifecycleCostSolution = "A"
	// LifecycleCostSolutionB captures enum value "B"
	LifecycleCostSolutionB LifecycleCostSolution = "B"

	// LifecycleCostYear1 captures enum value "1"
	LifecycleCostYear1 LifecycleCostYear = "1"
	// LifecycleCostYear2 captures enum value "2"
	LifecycleCostYear2 LifecycleCostYear = "2"
	// LifecycleCostYear3 captures enum value "3"
	LifecycleCostYear3 LifecycleCostYear = "3"
	// LifecycleCostYear4 captures enum value "4"
	LifecycleCostYear4 LifecycleCostYear = "4"
	// LifecycleCostYear5 captures enum value "5"
	LifecycleCostYear5 LifecycleCostYear = "5"
)
View Source
const (
	// SystemIntakeDocumentStatusAvailable means that the document passed the virus scanning
	SystemIntakeDocumentStatusAvailable SystemIntakeDocumentStatus = "AVAILABLE"
	// SystemIntakeDocumentStatusPending means that the document was just uploaded and hasn't yet been scanned for viruses
	SystemIntakeDocumentStatusPending SystemIntakeDocumentStatus = "PENDING"
	// SystemIntakeDocumentStatusUnavailable means that the document failed virus scanning
	SystemIntakeDocumentStatusUnavailable SystemIntakeDocumentStatus = "UNAVAILABLE"

	// SystemIntakeDocumentCommonTypeSOOSOW means the document is an SOO or SOW
	SystemIntakeDocumentCommonTypeSOOSOW SystemIntakeDocumentCommonType = "SOO_SOW"
	// SystemIntakeDocumentCommonTypeDraftIGCE means the document is a draft IGCE
	SystemIntakeDocumentCommonTypeDraftIGCE SystemIntakeDocumentCommonType = "DRAFT_IGCE"
	// SystemIntakeDocumentCommonTypeACQPLANSTRAT means the document is an Acquisition Plan or Strategy
	SystemIntakeDocumentCommonTypeACQPLANSTRAT SystemIntakeDocumentCommonType = "ACQUISITION_PLAN_OR_STRATEGY"
	// SystemIntakeDocumentCommonTypeMEETINGMINS means the document is Meeting Minutes
	SystemIntakeDocumentCommonTypeMEETINGMINS SystemIntakeDocumentCommonType = "MEETING_MINUTES"
	// SystemIntakeDocumentCommonTypeRAF means the document is a Request for Add'l Funding
	SystemIntakeDocumentCommonTypeRAF SystemIntakeDocumentCommonType = "REQUEST_FOR_ADDITIONAL_FUNDING"
	// SystemIntakeDocumentCommonTypeSoftwareBOM means the document is a Software Bill of Materials
	SystemIntakeDocumentCommonTypeSoftwareBOM SystemIntakeDocumentCommonType = "SOFTWARE_BILL_OF_MATERIALS"
	// SystemIntakeDocumentCommonTypeDraftOther means the document is some type other than the common document types
	SystemIntakeDocumentCommonTypeDraftOther SystemIntakeDocumentCommonType = "OTHER"

	// SystemIntakeDocumentVersionCURRENT means the document is current and relevant to the request
	SystemIntakeDocumentVersionCURRENT SystemIntakeDocumentVersion = "CURRENT"
	// SystemIntakeDocumentVersionHISTORICAL means the doc is included for historical context
	SystemIntakeDocumentVersionHISTORICAL SystemIntakeDocumentVersion = "HISTORICAL"

	// RequesterUploaderRole signifies a Requester uploaded a document
	RequesterUploaderRole DocumentUploaderRole = "REQUESTER"
	// AdminUploaderRole signifies an Admin uploaded a document
	AdminUploaderRole DocumentUploaderRole = "ADMIN"
)
View Source
const (
	TRBRequestStatusNew                    = "NEW"
	TRBRequestStatusDraftRequestForm       = "DRAFT_REQUEST_FORM"
	TRBRequestStatusRequestFormComplete    = "REQUEST_FORM_COMPLETE"
	TRBRequestStatusReadyForConsult        = "READY_FOR_CONSULT"
	TRBRequestStatusConsultScheduled       = "CONSULT_SCHEDULED"
	TRBRequestStatusConsultComplete        = "CONSULT_COMPLETE"
	TRBRequestStatusDraftGuidanceLetter    = "DRAFT_GUIDANCE_LETTER"
	TRBRequestStatusGuidanceLetterInReview = "GUIDANCE_LETTER_IN_REVIEW"
	TRBRequestStatusGuidanceLetterSent     = "GUIDANCE_LETTER_SENT"
	TRBRequestStatusFollowUpRequested      = "FOLLOW_UP_REQUESTED"
)

These are the possible values for TRBRequestStatus

View Source
const (
	// TRBRequestDocumentStatusAvailable means that the document passed the virus scanning
	TRBRequestDocumentStatusAvailable TRBRequestDocumentStatus = "AVAILABLE"
	// TRBRequestDocumentStatusPending means that the document was just uploaded and hasn't yet been scanned for viruses
	TRBRequestDocumentStatusPending TRBRequestDocumentStatus = "PENDING"
	// TRBRequestDocumentStatusUnavailable means that the document failed virus scanning
	TRBRequestDocumentStatusUnavailable TRBRequestDocumentStatus = "UNAVAILABLE"

	// TRBRequestDocumentCommonTypeArchitectureDiagram means the document is an architecture diagram
	TRBRequestDocumentCommonTypeArchitectureDiagram TRBDocumentCommonType = "ARCHITECTURE_DIAGRAM"
	// TRBRequestDocumentCommonTypePresentationSlideDeck means the document is a presentation slide deck
	TRBRequestDocumentCommonTypePresentationSlideDeck TRBDocumentCommonType = "PRESENTATION_SLIDE_DECK"
	// TRBRequestDocumentCommonTypeBusinessCase means the document is a business case
	TRBRequestDocumentCommonTypeBusinessCase TRBDocumentCommonType = "BUSINESS_CASE"
	// TRBRequestDocumentCommonTypeOther means the document is some type other than the common document types
	TRBRequestDocumentCommonTypeOther TRBDocumentCommonType = "OTHER"
)

Variables

Functions

func ContainsAllIDs

func ContainsAllIDs[BS IBaseStruct](models []BS, ids []uuid.UUID) bool

ContainsAllIDs checks if the IDs from a slice of BaseStructs contain all the given IDs

func ConvertEnums

func ConvertEnums[EnumType ~string](pqGroups pq.StringArray) []EnumType

ConvertEnums converts a pq.StringArray to specific, castable type

func EmailAddressesToStringPtrs

func EmailAddressesToStringPtrs(addresses []EmailAddress) []*string

EmailAddressesToStringPtrs converts a slice of EmailAddresses to a slice of string pointers

func EmailAddressesToStrings

func EmailAddressesToStrings(addresses []EmailAddress) []string

EmailAddressesToStrings converts a slice of EmailAddresses to a slice of string values

func MarshalNullBool

func MarshalNullBool(nb null.Bool) graphql.Marshaler

func MarshalNullFloat

func MarshalNullFloat(zf null.Float) graphql.Marshaler

func MarshalNullInt

func MarshalNullInt(ni null.Int) graphql.Marshaler

func MarshalNullString

func MarshalNullString(ns null.String) graphql.Marshaler

func MarshalUUID

func MarshalUUID(id uuid.UUID) graphql.Marshaler

MarshalUUID allows uuid to be marshalled by graphql

func MarshalZeroBool

func MarshalZeroBool(zb zero.Bool) graphql.Marshaler

func MarshalZeroFloat

func MarshalZeroFloat(zf zero.Float) graphql.Marshaler

func MarshalZeroInt

func MarshalZeroInt(zi zero.Int) graphql.Marshaler

func MarshalZeroString

func MarshalZeroString(zs zero.String) graphql.Marshaler

func MarshalZeroTime

func MarshalZeroTime(zt zero.Time) graphql.Marshaler

func NewUserIDRelation

func NewUserIDRelation(userID uuid.UUID) userIDRelation

NewUserIDRelation returns a user ID relation object

func StringsFromZeroStrs

func StringsFromZeroStrs(zs []zero.String) []string

func UnmarshalNullBool

func UnmarshalNullBool(v interface{}) (null.Bool, error)

func UnmarshalNullFloat

func UnmarshalNullFloat(v interface{}) (null.Float, error)

func UnmarshalNullInt

func UnmarshalNullInt(v interface{}) (null.Int, error)

func UnmarshalNullString

func UnmarshalNullString(v interface{}) (null.String, error)

func UnmarshalUUID

func UnmarshalUUID(v interface{}) (uuid.UUID, error)

UnmarshalUUID allows uuid to be unmarshalled by graphql

func UnmarshalZeroBool

func UnmarshalZeroBool(v interface{}) (zero.Bool, error)

func UnmarshalZeroFloat

func UnmarshalZeroFloat(v interface{}) (zero.Float, error)

func UnmarshalZeroInt

func UnmarshalZeroInt(v interface{}) (zero.Int, error)

func UnmarshalZeroString

func UnmarshalZeroString(v interface{}) (zero.String, error)

func UnmarshalZeroTime

func UnmarshalZeroTime(v interface{}) (zero.Time, error)

func ZeroStringsFrom

func ZeroStringsFrom(strs []string) []zero.String

Types

type Action

type Action struct {
	ID                                       uuid.UUID         `json:"id"`
	IntakeID                                 *uuid.UUID        `db:"intake_id"`
	BusinessCaseID                           *uuid.UUID        `db:"business_case_id"`
	ActionType                               ActionType        `json:"actionType" db:"action_type"`
	ActorName                                string            `json:"actorName" db:"actor_name"`
	ActorEmail                               EmailAddress      `json:"actorEmail" db:"actor_email"`
	ActorEUAUserID                           string            `json:"actorEuaUserId" db:"actor_eua_user_id"`
	Feedback                                 *HTML             `json:"feedback"`       // Feedback to requestor sent via email
	Step                                     *SystemIntakeStep `json:"step" db:"step"` // optional to account for previous actions that didn't save Step information
	CreatedAt                                *time.Time        `json:"createdAt" db:"created_at"`
	LCIDExpirationChangeNewDate              *time.Time        `db:"lcid_expiration_change_new_date"`
	LCIDExpirationChangePreviousDate         *time.Time        `db:"lcid_expiration_change_previous_date"`
	LCIDExpirationChangeNewScope             *HTML             `db:"lcid_expiration_change_new_scope"`
	LCIDExpirationChangePreviousScope        *HTML             `db:"lcid_expiration_change_previous_scope"`
	LCIDExpirationChangeNewNextSteps         *HTML             `db:"lcid_expiration_change_new_next_steps"`
	LCIDExpirationChangePreviousNextSteps    *HTML             `db:"lcid_expiration_change_previous_next_steps"`
	LCIDExpirationChangeNewCostBaseline      null.String       `db:"lcid_expiration_change_new_cost_baseline"`
	LCIDExpirationChangePreviousCostBaseline null.String       `db:"lcid_expiration_change_previous_cost_baseline"`
	LCIDRetirementChangeNewDate              *time.Time        `json:"newRetirementDate" db:"lcid_retirement_change_new_date"`
	LCIDRetirementChangePreviousDate         *time.Time        `json:"previousRetirementDate" db:"lcid_retirement_change_previous_date"`
}

Action is the model for an action on a system intake

func (Action) GetMappingKey

func (a Action) GetMappingKey() uuid.UUID

func (Action) GetMappingVal

func (a Action) GetMappingVal() *Action

type ActionType

type ActionType string

ActionType represents type of action

const (
	ActionTypePROGRESSTONEWSTEP        ActionType = "PROGRESS_TO_NEW_STEP"
	ActionTypeEXPIRELCID               ActionType = "EXPIRE_LCID"
	ActionTypeUPDATELCID               ActionType = "UPDATE_LCID"
	ActionTypeCONFIRMLCID              ActionType = "CONFIRM_LCID"
	ActionTypeREQUESTEDITS             ActionType = "REQUEST_EDITS"
	ActionTypeCLOSEREQUEST             ActionType = "CLOSE_REQUEST"
	ActionTypeREOPENREQUEST            ActionType = "REOPEN_REQUEST"
	ActionTypeNOTITGOVREQUEST          ActionType = "NOT_GOVERNANCE"
	ActionTypeRETIRELCID               ActionType = "RETIRE_LCID"
	ActionTypeUNRETIRELCID             ActionType = "UNRETIRE_LCID"
	ActionTypeCHANGELCIDRETIREMENTDATE ActionType = "CHANGE_LCID_RETIREMENT_DATE"
)

IT Gov v2 actions

const (
	ActionTypeISSUELCID    ActionType = "ISSUE_LCID"
	ActionTypeREJECT       ActionType = "REJECT"
	ActionTypeSUBMITINTAKE ActionType = "SUBMIT_INTAKE"
)

v1/v2 actions - originally from v1, still used in IT Gov v2

const (
	// ActionTypeNOTITREQUEST captures enum value NOT_IT_REQUEST
	ActionTypeNOTITREQUEST ActionType = "NOT_IT_REQUEST"
	// ActionTypeNEEDBIZCASE captures enum value NEED_BIZ_CASE
	ActionTypeNEEDBIZCASE ActionType = "NEED_BIZ_CASE"
	// ActionTypeREADYFORGRT captures enum value READY_FOR_GRT
	ActionTypeREADYFORGRT ActionType = "READY_FOR_GRT"
	// ActionTypeREADYFORGRB captures enum value READY_FOR_GRB
	ActionTypeREADYFORGRB ActionType = "READY_FOR_GRB"
	// ActionTypePROVIDEFEEDBACKNEEDBIZCASE captures enum value PROVIDE_FEEDBACK_NEED_BIZ_CASE
	ActionTypePROVIDEFEEDBACKNEEDBIZCASE ActionType = "PROVIDE_FEEDBACK_NEED_BIZ_CASE"
	// ActionTypeEXTENDLCID captures enum value EXTEND_LCID
	ActionTypeEXTENDLCID ActionType = "EXTEND_LCID"
	// ActionTypeCREATEBIZCASE captures enum value CREATE_BIZ_CASE
	ActionTypeCREATEBIZCASE ActionType = "CREATE_BIZ_CASE"
	// ActionTypeSUBMITBIZCASE captures enum value SUBMIT_BIZ_CASE
	ActionTypeSUBMITBIZCASE ActionType = "SUBMIT_BIZ_CASE"
	// ActionTypeSUBMITFINALBIZCASE captures enum value SUBMIT_FINAL_BIZ_CASE
	ActionTypeSUBMITFINALBIZCASE ActionType = "SUBMIT_FINAL_BIZ_CASE"
	// ActionTypeBIZCASENEEDSCHANGES captures enum value BIZ_CASE_NEEDS_CHANGES
	ActionTypeBIZCASENEEDSCHANGES ActionType = "BIZ_CASE_NEEDS_CHANGES"
	// ActionTypePROVIDEFEEDBACKBIZCASENEEDSCHANGES captures enum value PROVIDE_GRT_FEEDBACK_BIZ_CASE_DRAFT
	ActionTypePROVIDEFEEDBACKBIZCASENEEDSCHANGES ActionType = "PROVIDE_GRT_FEEDBACK_BIZ_CASE_DRAFT"
	// ActionTypePROVIDEFEEDBACKBIZCASEFINAL captures enum value PROVIDE_GRT_FEEDBACK_BIZ_CASE_FINAL
	ActionTypePROVIDEFEEDBACKBIZCASEFINAL ActionType = "PROVIDE_GRT_FEEDBACK_BIZ_CASE_FINAL"
	// ActionTypeNOGOVERNANCENEEDED captures enum value NO_GOVERNANCE_NEEDED
	ActionTypeNOGOVERNANCENEEDED ActionType = "NO_GOVERNANCE_NEEDED"
	// ActionTypeSENDEMAIL captures enum value SEND_EMAIL
	ActionTypeSENDEMAIL ActionType = "SEND_EMAIL"
	// ActionTypeGUIDERECEIVEDCLOSE captures enum value GUIDE_RECEIVED_CLOSE
	ActionTypeGUIDERECEIVEDCLOSE ActionType = "GUIDE_RECEIVED_CLOSE"
	// ActionTypeNOTRESPONDINGCLOSE captures enum value NOT_RESPONDING_CLOSE
	ActionTypeNOTRESPONDINGCLOSE ActionType = "NOT_RESPONDING_CLOSE"
)

v1 actions - no longer used in IT Gov v2 workflow

type AugmentedSystemIntakeContact

type AugmentedSystemIntakeContact struct {
	SystemIntakeContact
	CommonName string       `json:"commonName"`
	Email      EmailAddress `json:"email"`
}

AugmentedSystemIntakeContact enhances SystemIntakeContact with user info fetched from CEDAR

type BaseStruct

type BaseStruct struct {
	ID         uuid.UUID  `json:"id" db:"id"`
	CreatedBy  string     `json:"createdBy" db:"created_by"`
	CreatedAt  time.Time  `json:"createdAt" db:"created_at"`
	ModifiedBy *string    `json:"modifiedBy" db:"modified_by"`
	ModifiedAt *time.Time `json:"modifiedAt" db:"modified_at"`
}

BaseStruct represents the shared data in common betwen all models

func NewBaseStruct

func NewBaseStruct(createdBy string) BaseStruct

NewBaseStruct returns a base struct object

func (*BaseStruct) GetBaseStruct

func (b *BaseStruct) GetBaseStruct() *BaseStruct

GetBaseStruct returns the Base Struct

func (BaseStruct) GetCreatedBy

func (b BaseStruct) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (BaseStruct) GetID

func (b BaseStruct) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (BaseStruct) GetModifiedBy

func (b BaseStruct) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for a PlanBasics struct

func (*BaseStruct) SetModifiedBy

func (b *BaseStruct) SetModifiedBy(principal authentication.Principal) error

SetModifiedBy sets the modifiedBy information based off a Principal object

type BaseStructUser

type BaseStructUser struct {
	ID uuid.UUID `json:"id" db:"id"`
	// contains filtered or unexported fields
}

BaseStructUser represents the shared data in common betwen all models

func NewBaseStructUser

func NewBaseStructUser(createdBy uuid.UUID) BaseStructUser

NewBaseStructUser returns a base struct object

func (*BaseStructUser) CreatedByUserAccount

func (cbr *BaseStructUser) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (*BaseStructUser) GetBaseStruct

func (b *BaseStructUser) GetBaseStruct() *BaseStructUser

GetBaseStruct returns the Base Struct User Object

func (BaseStructUser) GetCreatedBy

func (b BaseStructUser) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (BaseStructUser) GetID

func (b BaseStructUser) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (BaseStructUser) GetModifiedBy

func (b BaseStructUser) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for a PlanBasics struct

func (*BaseStructUser) ModifiedByUserAccount

func (mbr *BaseStructUser) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

type BookmarkRequest

type BookmarkRequest struct {
	CedarSystemID string `db:"cedar_system_id"`
	EuaUserID     string `db:"eua_user_id"`
}

BookmarkRequest is used to retrieve a CEDAR system bookmark from the DB. It does not contain `CreatedAt` like the above

type BudgetActualCost

type BudgetActualCost struct {
	ActualSystemCost zero.String `json:"actualSystemCost,omitempty"`
	FiscalYear       zero.String `json:"fiscalYear,omitempty"`
	SystemID         zero.String `json:"systemId,omitempty"`
}

type BusinessCase

type BusinessCase struct {
	ID                                  uuid.UUID          `json:"id"`
	EUAUserID                           string             `json:"euaUserId" db:"eua_user_id"`
	SystemIntakeID                      uuid.UUID          `json:"systemIntakeId" db:"system_intake"`
	Status                              BusinessCaseStatus `json:"status"`
	ProjectName                         null.String        `json:"projectName" db:"project_name"`
	Requester                           null.String        `json:"requester"`
	RequesterPhoneNumber                null.String        `json:"requesterPhoneNumber" db:"requester_phone_number"`
	BusinessOwner                       null.String        `json:"businessOwner" db:"business_owner"`
	BusinessNeed                        null.String        `json:"businessNeed" db:"business_need"`
	CurrentSolutionSummary              null.String        `json:"currentSolutionSummary" db:"current_solution_summary"`
	CMSBenefit                          null.String        `json:"cmsBenefit" db:"cms_benefit"`
	PriorityAlignment                   null.String        `json:"priorityAlignment" db:"priority_alignment"`
	SuccessIndicators                   null.String        `json:"successIndicators" db:"success_indicators"`
	PreferredTitle                      null.String        `json:"preferredTitle" db:"preferred_title"`
	PreferredSummary                    null.String        `json:"preferredSummary" db:"preferred_summary"`
	PreferredAcquisitionApproach        null.String        `json:"preferredAcquisitionApproach" db:"preferred_acquisition_approach"`
	PreferredSecurityIsApproved         null.Bool          `json:"preferredSecurityIsApproved" db:"preferred_security_is_approved"`
	PreferredSecurityIsBeingReviewed    null.String        `json:"preferredSecurityIsBeingReviewed" db:"preferred_security_is_being_reviewed"`
	PreferredHostingType                null.String        `json:"preferredHostingType" db:"preferred_hosting_type"`
	PreferredHostingLocation            null.String        `json:"preferredHostingLocation" db:"preferred_hosting_location"`
	PreferredHostingCloudServiceType    null.String        `json:"preferredHostingCloudServiceType" db:"preferred_hosting_cloud_service_type"`
	PreferredHasUI                      null.String        `json:"preferredHasUI" db:"preferred_has_ui"`
	PreferredPros                       null.String        `json:"preferredPros" db:"preferred_pros"`
	PreferredCons                       null.String        `json:"preferredCons" db:"preferred_cons"`
	PreferredCostSavings                null.String        `json:"preferredCostSavings" db:"preferred_cost_savings"`
	AlternativeATitle                   null.String        `json:"alternativeATitle" db:"alternative_a_title"`
	AlternativeASummary                 null.String        `json:"alternativeASummary" db:"alternative_a_summary"`
	AlternativeAAcquisitionApproach     null.String        `json:"alternativeAAcquisitionApproach" db:"alternative_a_acquisition_approach"`
	AlternativeASecurityIsApproved      null.Bool          `json:"alternativeASecurityIsApproved" db:"alternative_a_security_is_approved"`
	AlternativeASecurityIsBeingReviewed null.String        `json:"alternativeASecurityIsBeingReviewed" db:"alternative_a_security_is_being_reviewed"`
	AlternativeAHostingType             null.String        `json:"alternativeAHostingType" db:"alternative_a_hosting_type"`
	AlternativeAHostingLocation         null.String        `json:"alternativeAHostingLocation" db:"alternative_a_hosting_location"`
	AlternativeAHostingCloudServiceType null.String        `json:"alternativeAHostingCloudServiceType" db:"alternative_a_hosting_cloud_service_type"`
	AlternativeAHasUI                   null.String        `json:"alternativeAHasUI" db:"alternative_a_has_ui"`
	AlternativeAPros                    null.String        `json:"alternativeAPros" db:"alternative_a_pros"`
	AlternativeACons                    null.String        `json:"alternativeACons" db:"alternative_a_cons"`
	AlternativeACostSavings             null.String        `json:"alternativeACostSavings" db:"alternative_a_cost_savings"`
	AlternativeBTitle                   null.String        `json:"alternativeBTitle" db:"alternative_b_title"`
	AlternativeBSummary                 null.String        `json:"alternativeBSummary" db:"alternative_b_summary"`
	AlternativeBAcquisitionApproach     null.String        `json:"alternativeBAcquisitionApproach" db:"alternative_b_acquisition_approach"`
	AlternativeBSecurityIsApproved      null.Bool          `json:"alternativeBSecurityIsApproved" db:"alternative_b_security_is_approved"`
	AlternativeBSecurityIsBeingReviewed null.String        `json:"alternativeBSecurityIsBeingReviewed" db:"alternative_b_security_is_being_reviewed"`
	AlternativeBHostingType             null.String        `json:"alternativeBHostingType" db:"alternative_b_hosting_type"`
	AlternativeBHostingLocation         null.String        `json:"alternativeBHostingLocation" db:"alternative_b_hosting_location"`
	AlternativeBHostingCloudServiceType null.String        `json:"alternativeBHostingCloudServiceType" db:"alternative_b_hosting_cloud_service_type"`
	AlternativeBHasUI                   null.String        `json:"alternativeBHasUI" db:"alternative_b_has_ui"`
	AlternativeBPros                    null.String        `json:"alternativeBPros" db:"alternative_b_pros"`
	AlternativeBCons                    null.String        `json:"alternativeBCons" db:"alternative_b_cons"`
	AlternativeBCostSavings             null.String        `json:"alternativeBCostSavings" db:"alternative_b_cost_savings"`
	CreatedAt                           *time.Time         `json:"createdAt" db:"created_at"`
	UpdatedAt                           *time.Time         `json:"updatedAt" db:"updated_at"`
	ArchivedAt                          *time.Time         `db:"archived_at"`

	// TODO: these fields are unused in GQL Schema but still exist as DB columns.
	// Write a migration to drop these columns
	// See https://jiraent.cms.gov/browse/EASI-1693
	InitialSubmittedAt *time.Time `json:"initialSubmittedAt" db:"initial_submitted_at"`
	LastSubmittedAt    *time.Time `json:"lastSubmittedAt" db:"last_submitted_at"`
}

BusinessCase is the model for the business case form.

func (BusinessCase) GetMappingKey

func (b BusinessCase) GetMappingKey() uuid.UUID

func (BusinessCase) GetMappingVal

func (b BusinessCase) GetMappingVal() *BusinessCase

type BusinessCaseSolution

type BusinessCaseSolution struct {
	AcquisitionApproach     *string `json:"acquisitionApproach,omitempty"`
	Cons                    *string `json:"cons,omitempty"`
	CostSavings             *string `json:"costSavings,omitempty"`
	HasUI                   *string `json:"hasUi,omitempty"`
	HostingCloudServiceType *string `json:"hostingCloudServiceType,omitempty"`
	HostingLocation         *string `json:"hostingLocation,omitempty"`
	HostingType             *string `json:"hostingType,omitempty"`
	Pros                    *string `json:"pros,omitempty"`
	SecurityIsApproved      *bool   `json:"securityIsApproved,omitempty"`
	SecurityIsBeingReviewed *string `json:"securityIsBeingReviewed,omitempty"`
	Summary                 *string `json:"summary,omitempty"`
	Title                   *string `json:"title,omitempty"`
}

A solution proposal within a business case

type BusinessCaseStatus

type BusinessCaseStatus string

BusinessCaseStatus represents the status of a system intake

type BusinessCaseWithCosts

type BusinessCaseWithCosts struct {
	BusinessCase
	LifecycleCostLines EstimatedLifecycleCosts `json:"lifecycleCostLines" db:"lifecycle_cost_lines"`
}

BusinessCaseWithCosts is a helper to allow for legacy REST code to function that combines lifecycle costs with the business case model

type BusinessCases

type BusinessCases []BusinessCase

BusinessCases is the model for a list of business cases

type BusinessOwnerInformation

type BusinessOwnerInformation struct {
	BeneficiaryAddressPurpose      []zero.String `json:"beneficiaryAddressPurpose"`
	BeneficiaryAddressPurposeOther zero.String   `json:"beneficiaryAddressPurposeOther"`
	BeneficiaryAddressSource       []zero.String `json:"beneficiaryAddressSource"`
	BeneficiaryAddressSourceOther  zero.String   `json:"beneficiaryAddressSourceOther"`
	BeneficiaryInformation         []zero.String `json:"beneficiaryInformation"`
	CostPerYear                    zero.String   `json:"costPerYear"`
	EditBeneficiaryInformation     bool          `json:"editBeneficiaryInformation,omitempty"`
	IsCmsOwned                     bool          `json:"isCmsOwned"`
	Nr508UserInterface             zero.String   `json:"nr508UserInterface,omitempty"`
	NumberOfContractorFte          zero.String   `json:"numberOfContractorFte"`
	NumberOfFederalFte             zero.String   `json:"numberOfFederalFte"`
	NumberOfSupportedUsersPerMonth zero.String   `json:"numberOfSupportedUsersPerMonth"`
	StoresBankingData              bool          `json:"storesBankingData"`
	StoresBeneficiaryAddress       bool          `json:"storesBeneficiaryAddress"`
}

BusinessOwnerInformation contains information about the business owner for a CEDAR system

type CedarAssigneeType

type CedarAssigneeType string

CedarAssigneeType represents the possible types of assignees that can receive roles

const (
	// PersonAssignee represents a person that's been assigned a role
	PersonAssignee CedarAssigneeType = "PERSON"
	// OrganizationAssignee represents an organization that's been assigned a role
	OrganizationAssignee CedarAssigneeType = "ORGANIZATION"
)

these values need to be in all-caps so that they match the GraphQL enum and match the frontend types generated from the GQL schema

type CedarAuthorityToOperate

type CedarAuthorityToOperate struct {
	// always-present fields
	CedarID               zero.String   `json:"cedarId"`
	UUID                  zero.String   `json:"uuid"`
	SystemOfRecordsNotice []zero.String `json:"systemOfRecordsNotice"`

	// possibly-null fields
	ActualDispositionDate                     zero.Time   `json:"actualDispositionDate"`
	ContainsPersonallyIdentifiableInformation bool        `json:"containsPersonallyIdentifiableInformation"`
	CountOfTotalNonPrivilegedUserPopulation   int         `json:"countOfTotalNonPrivilegedUserPopulation"`
	CountOfOpenPoams                          int         `json:"countOfOpenPoams"`
	CountOfTotalPrivilegedUserPopulation      int         `json:"countOfTotalPrivilegedUserPopulation"`
	DateAuthorizationMemoExpires              zero.Time   `json:"dateAuthorizationMemoExpires"`
	DateAuthorizationMemoSigned               zero.Time   `json:"dateAuthorizationMemoSigned"`
	EAuthenticationLevel                      zero.String `json:"eAuthenticationLevel"`
	Fips199OverallImpactRating                int         `json:"fips199OverallImpactRating"`
	FismaSystemAcronym                        zero.String `json:"fismaSystemAcronym"`
	FismaSystemName                           zero.String `json:"fismaSystemName"`
	IsAccessedByNonOrganizationalUsers        bool        `json:"isAccessedByNonOrganizationalUsers"`
	IsPiiLimitedToUserNameAndPass             bool        `json:"isPiiLimitedToUserNameAndPass"`
	IsProtectedHealthInformation              bool        `json:"isProtectedHealthInformation"`
	LastActScaDate                            zero.Time   `json:"lastActScaDate"`
	LastAssessmentDate                        zero.Time   `json:"lastAssessmentDate"`
	LastContingencyPlanCompletionDate         zero.Time   `json:"lastContingencyPlanCompletionDate"`
	LastPenTestDate                           zero.Time   `json:"lastPenTestDate"`
	PiaCompletionDate                         zero.Time   `json:"piaCompletionDate"`
	PrimaryCyberRiskAdvisor                   zero.String `json:"primaryCyberRiskAdvisor"`
	PrivacySubjectMatterExpert                zero.String `json:"privacySubjectMatterExpert"`
	RecoveryPointObjective                    float64     `json:"recoveryPointObjective"`
	RecoveryTimeObjective                     float64     `json:"recoveryTimeObjective"`
	TLCPhase                                  zero.String `json:"tlcPhase"`
	XLCPhase                                  zero.String `json:"xlcPhase"`
}

CedarAuthorityToOperate is the model for ATO information that comes back from the CEDAR Core API

type CedarBudget

type CedarBudget struct {
	FiscalYear    zero.String `json:"fiscalYear,omitempty"`
	Funding       zero.String `json:"funding,omitempty"`
	FundingID     zero.String `json:"fundingId,omitempty"`
	FundingSource zero.String `json:"fundingSource,omitempty"`
	ID            zero.String `json:"id,omitempty"`
	Name          zero.String `json:"name,omitempty"`
	ProjectID     zero.String `json:"projectId"`
	ProjectTitle  zero.String `json:"projectTitle,omitempty"`
	SystemID      zero.String `json:"systemId,omitempty"`
}

type CedarBudgetActualCost

type CedarBudgetActualCost struct {
	ActualSystemCost *string `json:"actualSystemCost,omitempty"`
	FiscalYear       *string `json:"fiscalYear,omitempty"`
	SystemID         *string `json:"systemId,omitempty"`
}

CedarBudgetActualCost represents an individual budget actual cost item; this information is returned from the CEDAR Core API as a part of the CedarBudgetSystemCost object

type CedarBudgetSystemCost

type CedarBudgetSystemCost struct {
	// Always present fields
	BudgetActualCosts []*BudgetActualCost `json:"budgetActualCosts"`
}

type CedarBusinessOwnerInformation

type CedarBusinessOwnerInformation struct {
	BeneficiaryAddressPurpose      []string `json:"beneficiaryAddressPurpose"`
	BeneficiaryAddressPurposeOther *string  `json:"beneficiaryAddressPurposeOther,omitempty"`
	BeneficiaryAddressSource       []string `json:"beneficiaryAddressSource"`
	BeneficiaryAddressSourceOther  *string  `json:"beneficiaryAddressSourceOther,omitempty"`
	BeneficiaryInformation         []string `json:"beneficiaryInformation"`
	CostPerYear                    *string  `json:"costPerYear,omitempty"`
	EditBeneficiaryInformation     *bool    `json:"editBeneficiaryInformation,omitempty"`
	IsCmsOwned                     *bool    `json:"isCmsOwned,omitempty"`
	Nr508UserInterface             *string  `json:"nr508UserInterface,omitempty"`
	NumberOfContractorFte          *string  `json:"numberOfContractorFte,omitempty"`
	NumberOfFederalFte             *string  `json:"numberOfFederalFte,omitempty"`
	NumberOfSupportedUsersPerMonth *string  `json:"numberOfSupportedUsersPerMonth,omitempty"`
	StoresBankingData              *bool    `json:"storesBankingData,omitempty"`
	StoresBeneficiaryAddress       *bool    `json:"storesBeneficiaryAddress,omitempty"`
}

BusinessOwnerInformation contains information about the business owner for a CEDAR system

type CedarContract

type CedarContract struct {
	EndDate         zero.Time   `json:"endDate,omitempty"`
	StartDate       zero.Time   `json:"startDate,omitempty"`
	ContractNumber  zero.String `json:"contractNumber"`
	ContractName    zero.String `json:"contractName,omitempty"`
	Description     zero.String `json:"description,omitempty"`
	OrderNumber     zero.String `json:"orderNumber,omitempty"`
	ServiceProvided zero.String `json:"serviceProvided,omitempty"`
	IsDeliveryOrg   bool        `json:"isDeliveryOrg"`
	SystemID        zero.String `json:"systemId,omitempty"`
}

type CedarDataCenter

type CedarDataCenter struct {
	ID          zero.String
	Name        zero.String
	Version     zero.String
	Description zero.String
	State       zero.String // example: "Active" - NOT geographical state
	Status      zero.String
	StartDate   zero.Time
	EndDate     zero.Time

	// address components
	Address1     zero.String
	Address2     zero.String
	City         zero.String
	AddressState zero.String
	Zip          zero.String
}

CedarDataCenter represents a single DataCenter object returned from the CEDAR API

type CedarDataCenter2

type CedarDataCenter2 struct {
	Address1     zero.String `json:"address1,omitempty"`
	Address2     zero.String `json:"address2,omitempty"`
	AddressState zero.String `json:"addressState,omitempty"`
	City         zero.String `json:"city,omitempty"`
	Description  zero.String `json:"description,omitempty"`
	EndDate      zero.Time   `json:"endDate,omitempty"`
	ID           zero.String `json:"id,omitempty"`
	Name         zero.String `json:"name,omitempty"`
	StartDate    zero.Time   `json:"startDate,omitempty"`
	State        zero.String `json:"state,omitempty"`
	Status       zero.String `json:"status,omitempty"`
	Version      zero.String `json:"version,omitempty"`
	Zip          zero.String `json:"zip,omitempty"`
}

type CedarDeployment

type CedarDeployment struct {
	// always-present fields
	ID       zero.String
	Name     zero.String
	SystemID zero.String

	// possibly-null fields
	StartDate                zero.Time
	EndDate                  zero.Time
	IsHotSite                zero.String // currently echoes CEDAR data exactly. in the future, this could potentially be nullable Bool; sample values from CEDAR seem to be "Yes" or null
	Description              zero.String
	ContractorName           zero.String
	SystemVersion            zero.String
	HasProductionData        zero.String // currently echoes CEDAR data exactly. in the future, this could potentially be nullable Bool; sample values from CEDAR seem to be "Yes" or null
	ReplicatedSystemElements []string
	DeploymentType           zero.String
	SystemName               zero.String
	DeploymentElementID      zero.String
	State                    zero.String
	Status                   zero.String
	WanType                  zero.String
	DataCenter               *CedarDataCenter
}

CedarDeployment represents a single Deployment object returned from the CEDAR API

type CedarExchange

type CedarExchange struct {
	ConnectionFrequency         []zero.String                  `json:"connectionFrequency"`
	ContainsBankingData         bool                           `json:"containsBankingData,omitempty"`
	ContainsBeneficiaryAddress  bool                           `json:"containsBeneficiaryAddress,omitempty"`
	ContainsPhi                 bool                           `json:"containsPhi,omitempty"`
	ContainsPii                 bool                           `json:"containsPii,omitempty"`
	ContainsHealthDisparityData bool                           `json:"containsHealthDisparityData,omitempty"`
	DataExchangeAgreement       zero.String                    `json:"dataExchangeAgreement,omitempty"`
	DataFormat                  zero.String                    `json:"dataFormat,omitempty"`
	DataFormatOther             zero.String                    `json:"dataFormatOther,omitempty"`
	ExchangeDescription         zero.String                    `json:"exchangeDescription,omitempty"`
	ExchangeEndDate             zero.Time                      `json:"exchangeEndDate,omitempty"`
	ExchangeID                  zero.String                    `json:"exchangeId,omitempty"`
	ExchangeName                zero.String                    `json:"exchangeName,omitempty"`
	ExchangeRetiredDate         zero.Time                      `json:"exchangeRetiredDate,omitempty"`
	ExchangeStartDate           zero.Time                      `json:"exchangeStartDate,omitempty"`
	ExchangeState               zero.String                    `json:"exchangeState,omitempty"`
	ExchangeVersion             zero.String                    `json:"exchangeVersion,omitempty"`
	ExchangeDirection           ExchangeDirection              `json:"exchangeDirection,omitempty"`
	FromOwnerID                 zero.String                    `json:"fromOwnerId,omitempty"`
	FromOwnerName               zero.String                    `json:"fromOwnerName,omitempty"`
	FromOwnerType               zero.String                    `json:"fromOwnerType,omitempty"`
	IsBeneficiaryMailingFile    bool                           `json:"isBeneficiaryMailingFile,omitempty"`
	NumOfRecords                zero.String                    `json:"numOfRecords,omitempty"`
	SharedViaAPI                bool                           `json:"sharedViaApi,omitempty"`
	ToOwnerID                   zero.String                    `json:"toOwnerId,omitempty"`
	ToOwnerName                 zero.String                    `json:"toOwnerName,omitempty"`
	ToOwnerType                 zero.String                    `json:"toOwnerType,omitempty"`
	TypeOfData                  []*CedarExchangeTypeOfDataItem `json:"typeOfData"`
}

CedarExchange contains information about how data is exchanged between a CEDAR system and another system

type CedarExchangeTypeOfDataItem

type CedarExchangeTypeOfDataItem struct {
	ID   zero.String `json:"id,omitempty"`
	Name zero.String `json:"name,omitempty"`
}

CedarExchangeTypeOfDataItem is one item of the TypeofData slice in a CedarExchange

type CedarRole

type CedarRole struct {
	// always-present fields
	Application zero.String // should always be "alfabet"
	ObjectID    zero.String // ID of the system that the role is assigned to
	RoleTypeID  zero.String

	// possibly-null fields
	AssigneeType      *CedarAssigneeType
	AssigneeUsername  zero.String
	AssigneeEmail     zero.String
	AssigneeOrgID     zero.String
	AssigneeOrgName   zero.String
	AssigneeFirstName zero.String
	AssigneeLastName  zero.String
	AssigneePhone     zero.String
	AssigneeDesc      zero.String

	RoleTypeName zero.String
	RoleTypeDesc zero.String
	RoleID       zero.String
	ObjectType   zero.String
}

CedarRole is the model for the role that a user holds for some system

type CedarRoleNameType

type CedarRoleNameType string
const (
	AIContactRole                     CedarRoleNameType = "AI Contact"
	APIContactRole                    CedarRoleNameType = "API Contact"
	BudgetAnalystRole                 CedarRoleNameType = "Budget Analyst"
	BusinessOwnerRole                 CedarRoleNameType = "Business Owner"
	CORRole                           CedarRoleNameType = "Contracting Officer's Representative (COR)"
	DataCenterContactRole             CedarRoleNameType = "Data Center Contact"
	ISSORole                          CedarRoleNameType = "ISSO"
	GovernmentTaskLeadRole            CedarRoleNameType = "Government Task Lead (GTL)"
	ProjectLeadRole                   CedarRoleNameType = "Project Lead"
	SubjectMatterExpertRole           CedarRoleNameType = "Subject Matter Expert (SME)"
	SupportStaffRole                  CedarRoleNameType = "Support Staff"
	SurveyPointOfContactRole          CedarRoleNameType = "Survey Point of Contact"
	SystemBusinessQuestionContactRole CedarRoleNameType = "Business Question Contact"
	SystemDataCenterContactRole       CedarRoleNameType = "Data Center Contact"
	SystemIssuesContactRole           CedarRoleNameType = "System Issues Contact"
	SystemMaintainerRole              CedarRoleNameType = "System Maintainer"
	TechnicalSystemIssuesContactRole  CedarRoleNameType = "Technical System Issues Contact"
)

func (CedarRoleNameType) String

func (c CedarRoleNameType) String() string

type CedarRoleType

type CedarRoleType struct {
	// always-present fields
	ID          zero.String
	Application zero.String // should always be "alfabet"
	Name        zero.String

	// possibly-null fields
	Description zero.String
}

CedarRoleType is the model for a type of role that a user or organization can hold for some system, i.e. "Business Owner" or "Project Lead"

type CedarSoftwareProductItem

type CedarSoftwareProductItem struct {
	APIGatewayUse                  *bool   `json:"apiGatewayUse,omitempty"`
	ElaPurchase                    *string `json:"elaPurchase,omitempty"`
	ElaVendorID                    *string `json:"elaVendorId,omitempty"`
	ProvidesAiCapability           *bool   `json:"providesAiCapability,omitempty"`
	Refstr                         *string `json:"refstr,omitempty"`
	SoftwareCatagoryConnectionGUID *string `json:"softwareCatagoryConnectionGuid,omitempty"`
	SoftwareVendorConnectionGUID   *string `json:"softwareVendorConnectionGuid,omitempty"`
	SoftwareCost                   *string `json:"softwareCost,omitempty"`
	SoftwareElaOrganization        *string `json:"softwareElaOrganization,omitempty"`
	SoftwareName                   *string `json:"softwareName,omitempty"`
	SystemSoftwareConnectionGUID   *string `json:"systemSoftwareConnectionGuid,omitempty"`
	TechnopediaCategory            *string `json:"technopediaCategory,omitempty"`
	TechnopediaID                  *string `json:"technopediaID,omitempty"`
	VendorName                     *string `json:"vendorName,omitempty"`
}

CedarSoftwareProductItem represents an individual software product; this information is returned from the CEDAR Core API as a part of the CedarSoftwareProducts object

type CedarSoftwareProducts

type CedarSoftwareProducts struct {
	// Always present fields
	AiSolnCatg       []zero.String          `json:"aiSolnCatg"`
	APIDataArea      []zero.String          `json:"apiDataArea"`
	SoftwareProducts []*SoftwareProductItem `json:"softwareProducts"`

	// Possibly null fields
	AISolnCatgOther     zero.String `json:"aiSolnCatgOther,omitempty"`
	APIDescPubLocation  zero.String `json:"apiDescPubLocation,omitempty"`
	APIDescPublished    zero.String `json:"apiDescPublished,omitempty"`
	APIFHIRUse          zero.String `json:"apiFHIRUse,omitempty"`
	APIFHIRUseOther     zero.String `json:"apiFHIRUseOther,omitempty"`
	APIHasPortal        bool        `json:"apiHasPortal,omitempty"`
	ApisAccessibility   zero.String `json:"apisAccessibility,omitempty"`
	ApisDeveloped       zero.String `json:"apisDeveloped,omitempty"`
	DevelopmentStage    zero.String `json:"developmentStage,omitempty"`
	SystemHasAPIGateway bool        `json:"systemHasApiGateway,omitempty"`
	UsesAiTech          zero.String `json:"usesAiTech,omitempty"`
}

CedarSoftwareProducts represents a single SoftwareProduct object returned from the CEDAR API

type CedarSubSystem

type CedarSubSystem struct {
	ID          zero.String `json:"id"`
	Name        zero.String `json:"name"`
	Description zero.String `json:"description"`
	Acronym     zero.String `json:"acronym"`
}

type CedarSystem

type CedarSystem struct {
	ID                      zero.String `json:"id"`
	Name                    zero.String `json:"name"`
	Description             zero.String `json:"description"`
	Acronym                 zero.String `json:"acronym"`
	ATOEffectiveDate        zero.Time   `json:"atoEffectiveDate"`
	ATOExpirationDate       zero.Time   `json:"atoExpirationDate"`
	State                   zero.String `json:"state"`
	Status                  zero.String `json:"status"`
	BusinessOwnerOrg        zero.String `json:"businessOwnerOrg"`
	BusinessOwnerOrgComp    zero.String `json:"businessOwnerOrgComp"`
	SystemMaintainerOrg     zero.String `json:"systemMaintainerOrg"`
	SystemMaintainerOrgComp zero.String `json:"systemMaintainerOrgComp"`
	VersionID               zero.String `json:"versionId"`
	UUID                    zero.String `json:"uuid"`
}

CedarSystem is the model for a single system that comes back from the CEDAR Core API

type CedarSystemBookmark

type CedarSystemBookmark struct {
	EUAUserID     string     `json:"euaUserId" db:"eua_user_id"`
	CedarSystemID string     `json:"cedarSystemId" db:"cedar_system_id"`
	CreatedAt     *time.Time `db:"created_at"`
}

CedarSystemBookmark represents a cedar system that a user has bookmarked in the system repository

type CedarSystemDetails

type CedarSystemDetails struct {
	CedarSystem                 *CedarSystem
	BusinessOwnerInformation    *BusinessOwnerInformation
	SystemMaintainerInformation *SystemMaintainerInformation
	Roles                       []*CedarRole       `json:"roles"`
	Deployments                 []*CedarDeployment `json:"deployments"`
	Threats                     []*CedarThreat     `json:"threats"`
	URLs                        []*CedarURL        `json:"urls"`
	IsMySystem                  bool               `json:"isMySystem"`
	ATOEffectiveDate            zero.Time          `json:"atoEffectiveDate"`
	ATOExpirationDate           zero.Time          `json:"atoExpirationDate"`
}

CedarSystemDetails contains more detailed information related to a CEDAR system

type CedarSystemMaintainerInformation

type CedarSystemMaintainerInformation struct {
	AgileUsed                             *bool      `json:"agileUsed,omitempty"`
	AdHocAgileDeploymentFrequency         *string    `json:"adHocAgileDeploymentFrequency,omitempty"`
	AuthoritativeDatasource               *string    `json:"authoritativeDatasource,omitempty"`
	BusinessArtifactsOnDemand             *bool      `json:"businessArtifactsOnDemand,omitempty"`
	DataAtRestEncryptionKeyManagement     *string    `json:"dataAtRestEncryptionKeyManagement,omitempty"`
	DeploymentFrequency                   *string    `json:"deploymentFrequency,omitempty"`
	DevCompletionPercent                  *string    `json:"devCompletionPercent,omitempty"`
	DevWorkDescription                    *string    `json:"devWorkDescription,omitempty"`
	EcapParticipation                     *bool      `json:"ecapParticipation,omitempty"`
	FrontendAccessType                    *string    `json:"frontendAccessType,omitempty"`
	HardCodedIPAddress                    *bool      `json:"hardCodedIPAddress,omitempty"`
	IP6EnabledAssetPercent                *string    `json:"ip6EnabledAssetPercent,omitempty"`
	IP6TransitionPlan                     *string    `json:"ip6TransitionPlan,omitempty"`
	IPEnabledAssetCount                   *int       `json:"ipEnabledAssetCount,omitempty"`
	LegalHoldCaseName                     *string    `json:"legalHoldCaseName,omitempty"`
	LocallyStoredUserInformation          *bool      `json:"locallyStoredUserInformation,omitempty"`
	MajorRefreshDate                      *time.Time `json:"majorRefreshDate,omitempty"`
	MultifactorAuthenticationMethod       []string   `json:"multifactorAuthenticationMethod"`
	MultifactorAuthenticationMethodOther  *string    `json:"multifactorAuthenticationMethodOther,omitempty"`
	NetAccessibility                      *string    `json:"netAccessibility,omitempty"`
	NetworkTrafficEncryptionKeyManagement *string    `json:"networkTrafficEncryptionKeyManagement,omitempty"`
	NoMajorRefresh                        *bool      `json:"noMajorRefresh,omitempty"`
	NoPersistentRecordsFlag               *bool      `json:"noPersistentRecordsFlag,omitempty"`
	NoPlannedMajorRefresh                 *bool      `json:"noPlannedMajorRefresh,omitempty"`
	OmDocumentationOnDemand               *bool      `json:"omDocumentationOnDemand,omitempty"`
	PlansToRetireReplace                  *string    `json:"plansToRetireReplace,omitempty"`
	QuarterToRetireReplace                *string    `json:"quarterToRetireReplace,omitempty"`
	RecordsManagementBucket               []string   `json:"recordsManagementBucket"`
	RecordsManagementDisposalLocation     *string    `json:"recordsManagementDisposalLocation,omitempty"`
	RecordsManagementDisposalPlan         *string    `json:"recordsManagementDisposalPlan,omitempty"`
	RecordsUnderLegalHold                 *bool      `json:"recordsUnderLegalHold,omitempty"`
	SourceCodeOnDemand                    *bool      `json:"sourceCodeOnDemand,omitempty"`
	SystemCustomization                   *string    `json:"systemCustomization,omitempty"`
	SystemDataLocation                    []string   `json:"systemDataLocation"`
	SystemDataLocationNotes               *string    `json:"systemDataLocationNotes,omitempty"`
	SystemDesignOnDemand                  *bool      `json:"systemDesignOnDemand,omitempty"`
	SystemProductionDate                  *time.Time `json:"systemProductionDate,omitempty"`
	SystemRequirementsOnDemand            *bool      `json:"systemRequirementsOnDemand,omitempty"`
	TestPlanOnDemand                      *bool      `json:"testPlanOnDemand,omitempty"`
	TestReportsOnDemand                   *bool      `json:"testReportsOnDemand,omitempty"`
	TestScriptsOnDemand                   *bool      `json:"testScriptsOnDemand,omitempty"`
	YearToRetireReplace                   *string    `json:"yearToRetireReplace,omitempty"`
}

SystemMaintainerInformation contains information about the system maintainer of a CEDAR system

type CedarThreat

type CedarThreat struct {
	// possibly-null fields
	AlternativeID     zero.String `json:"alternativeId"`
	ControlFamily     zero.String `json:"controlFamily"`
	DaysOpen          int         `json:"daysOpen"`
	ID                zero.String `json:"id"`
	ParentID          zero.String `json:"parentId"`
	Type              zero.String `json:"type"`
	WeaknessRiskLevel zero.String `json:"weaknessRiskLevel"`
}

CedarThreat is the model for threat information that comes back from the CEDAR Core API

type CedarURL

type CedarURL struct {
	// always-present field
	ID zero.String

	Address                        zero.String // The actual URL.
	IsBehindWebApplicationFirewall bool
	IsAPIEndpoint                  bool
	IsVersionCodeRepository        bool        // Represents whether this URL provides access to a versioned code repository.
	URLHostingEnv                  zero.String // This should correspond with .DeploymentType on a CedarDeployment object.
}

CedarURL represents a single URL object returned from the CEDAR API

type CloseTRBRequestInput

type CloseTRBRequestInput struct {
	ID             uuid.UUID `json:"id"`
	ReasonClosed   HTML      `json:"reasonClosed"`
	CopyTrbMailbox bool      `json:"copyTrbMailbox"`
	NotifyEuaIds   []string  `json:"notifyEuaIds"`
}

The input needed to close a TRB request

type ContractDate

type ContractDate struct {
	Day   *string `json:"day,omitempty"`
	Month *string `json:"month,omitempty"`
	Year  *string `json:"year,omitempty"`
}

Represents a date used for start and end dates on a contract

type CreateCedarSystemBookmarkInput

type CreateCedarSystemBookmarkInput struct {
	CedarSystemID string `json:"cedarSystemId"`
}

The data needed to bookmark a cedar system

type CreateCedarSystemBookmarkPayload

type CreateCedarSystemBookmarkPayload struct {
	CedarSystemBookmark *CedarSystemBookmark `json:"cedarSystemBookmark,omitempty"`
}

The payload when bookmarking a cedar system

type CreateGRBReviewerInput

type CreateGRBReviewerInput struct {
	EuaUserID  string                            `json:"euaUserId"`
	VotingRole SystemIntakeGRBReviewerVotingRole `json:"votingRole"`
	GrbRole    SystemIntakeGRBReviewerRole       `json:"grbRole"`
}

type CreateSystemIntakeContactInput

type CreateSystemIntakeContactInput struct {
	EuaUserID      string    `json:"euaUserId"`
	SystemIntakeID uuid.UUID `json:"systemIntakeId"`
	Component      string    `json:"component"`
	Role           string    `json:"role"`
}

The data needed to associate a contact with a system intake

type CreateSystemIntakeContactPayload

type CreateSystemIntakeContactPayload struct {
	SystemIntakeContact *SystemIntakeContact `json:"systemIntakeContact,omitempty"`
}

The payload when creating a system intake contact

type CreateSystemIntakeDocumentInput

type CreateSystemIntakeDocumentInput struct {
	RequestID            uuid.UUID                      `json:"requestID"`
	FileData             graphql.Upload                 `json:"fileData"`
	DocumentType         SystemIntakeDocumentCommonType `json:"documentType"`
	Version              SystemIntakeDocumentVersion    `json:"version"`
	OtherTypeDescription *string                        `json:"otherTypeDescription,omitempty"`
	SendNotification     *bool                          `json:"sendNotification,omitempty"`
}

The data needed to upload a System Intake document and attach it to a request with metadata

type CreateSystemIntakeDocumentPayload

type CreateSystemIntakeDocumentPayload struct {
	Document *SystemIntakeDocument `json:"document,omitempty"`
}

Data returned after uploading a document to a System Intake

type CreateSystemIntakeGRBReviewersInput

type CreateSystemIntakeGRBReviewersInput struct {
	SystemIntakeID uuid.UUID                 `json:"systemIntakeID"`
	Reviewers      []*CreateGRBReviewerInput `json:"reviewers"`
}

type CreateSystemIntakeGRBReviewersPayload

type CreateSystemIntakeGRBReviewersPayload struct {
	Reviewers []*SystemIntakeGRBReviewer `json:"reviewers"`
}

type CreateSystemIntakeInput

type CreateSystemIntakeInput struct {
	RequestType SystemIntakeRequestType     `json:"requestType"`
	Requester   *SystemIntakeRequesterInput `json:"requester"`
}

The input data used to initialize an IT governance request for a system

type CreateSystemIntakeNoteInput

type CreateSystemIntakeNoteInput struct {
	Content    HTML      `json:"content"`
	AuthorName string    `json:"authorName"`
	IntakeID   uuid.UUID `json:"intakeId"`
}

Input data for adding a note to a system request

type CreateTRBAdminNoteConsultSessionInput

type CreateTRBAdminNoteConsultSessionInput struct {
	TrbRequestID uuid.UUID `json:"trbRequestId"`
	NoteText     HTML      `json:"noteText"`
}

The data needed to create a TRB admin note with the Consult Session category

type CreateTRBAdminNoteGeneralRequestInput

type CreateTRBAdminNoteGeneralRequestInput struct {
	TrbRequestID uuid.UUID `json:"trbRequestId"`
	NoteText     HTML      `json:"noteText"`
}

The data needed to create a TRB admin note with the General Request category

type CreateTRBAdminNoteGuidanceLetterInput

type CreateTRBAdminNoteGuidanceLetterInput struct {
	TrbRequestID            uuid.UUID   `json:"trbRequestId"`
	NoteText                HTML        `json:"noteText"`
	AppliesToMeetingSummary bool        `json:"appliesToMeetingSummary"`
	AppliesToNextSteps      bool        `json:"appliesToNextSteps"`
	RecommendationIDs       []uuid.UUID `json:"recommendationIDs"`
}

The data needed to create a TRB admin note with the Guidance Letter category

type CreateTRBAdminNoteInitialRequestFormInput

type CreateTRBAdminNoteInitialRequestFormInput struct {
	TrbRequestID                 uuid.UUID `json:"trbRequestId"`
	NoteText                     HTML      `json:"noteText"`
	AppliesToBasicRequestDetails bool      `json:"appliesToBasicRequestDetails"`
	AppliesToSubjectAreas        bool      `json:"appliesToSubjectAreas"`
	AppliesToAttendees           bool      `json:"appliesToAttendees"`
}

The data needed to create a TRB admin note with the Initial Request Form category

type CreateTRBAdminNoteSupportingDocumentsInput

type CreateTRBAdminNoteSupportingDocumentsInput struct {
	TrbRequestID uuid.UUID   `json:"trbRequestId"`
	NoteText     HTML        `json:"noteText"`
	DocumentIDs  []uuid.UUID `json:"documentIDs"`
}

The data needed to create a TRB admin note with the Supporting Documents category

type CreateTRBGuidanceLetterRecommendationInput

type CreateTRBGuidanceLetterRecommendationInput struct {
	TrbRequestID   uuid.UUID                               `json:"trbRequestId"`
	Title          string                                  `json:"title"`
	Recommendation HTML                                    `json:"recommendation"`
	Links          []string                                `json:"links"`
	Category       TRBGuidanceLetterRecommendationCategory `json:"category"`
}

The input required to add a recommendation & links to a TRB guidance letter

type CreateTRBRequestAttendeeInput

type CreateTRBRequestAttendeeInput struct {
	EuaUserID    string     `json:"euaUserId"`
	TrbRequestID uuid.UUID  `json:"trbRequestId"`
	Component    string     `json:"component"`
	Role         PersonRole `json:"role"`
}

The data needed add a TRB request attendee to a TRB request

type CreateTRBRequestDocumentInput

type CreateTRBRequestDocumentInput struct {
	RequestID            uuid.UUID             `json:"requestID"`
	FileData             graphql.Upload        `json:"fileData"`
	DocumentType         TRBDocumentCommonType `json:"documentType"`
	OtherTypeDescription *string               `json:"otherTypeDescription,omitempty"`
}

The data needed to upload a TRB document and attach it to a request with metadata

type CreateTRBRequestDocumentPayload

type CreateTRBRequestDocumentPayload struct {
	Document *TRBRequestDocument `json:"document,omitempty"`
}

Data returned after uploading a document to a TRB request

type CreateTRBRequestFeedbackInput

type CreateTRBRequestFeedbackInput struct {
	TrbRequestID    uuid.UUID         `json:"trbRequestId"`
	FeedbackMessage HTML              `json:"feedbackMessage"`
	CopyTrbMailbox  bool              `json:"copyTrbMailbox"`
	NotifyEuaIds    []string          `json:"notifyEuaIds"`
	Action          TRBFeedbackAction `json:"action"`
}

The data needed to add feedback to a TRB request

type CurrentUser

type CurrentUser struct {
	LaunchDarkly *LaunchDarklySettings `json:"launchDarkly"`
}

The current user of the application

type DeleteCedarSystemBookmarkPayload

type DeleteCedarSystemBookmarkPayload struct {
	CedarSystemID string `json:"cedarSystemId"`
}

The payload when deleting a bookmark for a cedar system

type DeleteSystemIntakeContactInput

type DeleteSystemIntakeContactInput struct {
	ID uuid.UUID `json:"id"`
}

The data needed to delete a system intake contact

type DeleteSystemIntakeContactPayload

type DeleteSystemIntakeContactPayload struct {
	SystemIntakeContact *SystemIntakeContact `json:"systemIntakeContact,omitempty"`
}

The payload when deleting a system intake contact

type DeleteSystemIntakeDocumentPayload

type DeleteSystemIntakeDocumentPayload struct {
	Document *SystemIntakeDocument `json:"document,omitempty"`
}

Data returned after deleting a document attached to a System Intake

type DeleteSystemIntakeGRBReviewerInput

type DeleteSystemIntakeGRBReviewerInput struct {
	ReviewerID uuid.UUID `json:"reviewerID"`
}

type DeleteTRBRequestDocumentPayload

type DeleteTRBRequestDocumentPayload struct {
	Document *TRBRequestDocument `json:"document,omitempty"`
}

Data returned after deleting a document attached to a TRB request

type DeleteTRBRequestFundingSourcesInput

type DeleteTRBRequestFundingSourcesInput struct {
	TrbRequestID  uuid.UUID `json:"trbRequestId"`
	FundingNumber string    `json:"fundingNumber"`
}

type DocumentUploaderRole

type DocumentUploaderRole string

type EmailAddress

type EmailAddress string

EmailAddress represents an email address

func NewEmailAddress

func NewEmailAddress(address string) EmailAddress

NewEmailAddress creates a new email address

func (EmailAddress) String

func (e EmailAddress) String() string

String returns the email address as a string

type EmailNotificationRecipients

type EmailNotificationRecipients struct {
	RegularRecipientEmails   []EmailAddress
	ShouldNotifyITGovernance bool
	ShouldNotifyITInvestment bool
}

EmailNotificationRecipients contains info about who to notify when an action is taken on an intake request

type EstimatedLifecycleCost

type EstimatedLifecycleCost struct {
	ID             uuid.UUID             `json:"id"`
	BusinessCaseID uuid.UUID             `json:"business_case" db:"business_case"`
	Solution       LifecycleCostSolution `json:"solution"`
	Phase          *LifecycleCostPhase   `json:"phase"`
	Year           LifecycleCostYear     `json:"year"`
	Cost           *int                  `json:"cost"`
}

EstimatedLifecycleCost is the model for the cost of an estimated lifecycle line in the business case.

func (EstimatedLifecycleCost) GetMappingKey

func (e EstimatedLifecycleCost) GetMappingKey() uuid.UUID

func (EstimatedLifecycleCost) GetMappingVal

type EstimatedLifecycleCosts

type EstimatedLifecycleCosts []EstimatedLifecycleCost

EstimatedLifecycleCosts models a list of EstimatedLifecycleCost line items

func (*EstimatedLifecycleCosts) Scan

func (e *EstimatedLifecycleCosts) Scan(src interface{}) error

Scan implements the sql.Scanner interface

type ExchangeDirection

type ExchangeDirection string

ExchangeDirection indicates the direction of data flow in a CEDAR exchange

const (
	// ExchangeDirectionSender indicates that the system is the sender of data in the data exchange
	ExchangeDirectionSender ExchangeDirection = "SENDER"
	// ExchangeDirectionReceiver indicates that the system is the receiver of data in the data exchange
	ExchangeDirectionReceiver ExchangeDirection = "RECEIVER"
)

type GRBReviewerComparison

type GRBReviewerComparison struct {
	ID                uuid.UUID                         `json:"id"`
	UserAccount       *authentication.UserAccount       `json:"userAccount"`
	EuaUserID         string                            `json:"euaUserId"`
	VotingRole        SystemIntakeGRBReviewerVotingRole `json:"votingRole"`
	GrbRole           SystemIntakeGRBReviewerRole       `json:"grbRole"`
	IsCurrentReviewer bool                              `json:"isCurrentReviewer"`
}

GRBReviewerComparison represents an individual GRB Reviewer within the context of a comparison operation between two system intakes.

For this reason, it is similar to a regular "type GRBReviewer", but has an extra field for "isCurrentReviewer", representing whether or not the specific GRB Reviewer is already on the intake being compared against or not.

type GRBReviewerComparisonIntake

type GRBReviewerComparisonIntake struct {
	ID              uuid.UUID                `json:"id"`
	RequestName     string                   `json:"requestName"`
	Reviewers       []*GRBReviewerComparison `json:"reviewers"`
	IntakeCreatedAt *time.Time               `json:"intakeCreatedAt,omitempty"`
}

GRBReviewerComparisonIntake represents a response when searching for System Intakes that have GRB reviewers as compared to another Intake.

It's effectively a smaller subset of some of the fields on the entire Intake, plus a special "reviewers" field specific to the comparison operation.

type GovernanceRequestFeedback

type GovernanceRequestFeedback struct {
	// Can't use BaseStruct here since CreatedBy is nullable in the DB
	ID         uuid.UUID  `json:"id" db:"id"`
	CreatedBy  *string    `json:"createdBy" db:"created_by"`
	CreatedAt  time.Time  `json:"createdAt" db:"created_at"`
	ModifiedBy *string    `json:"modifiedBy" db:"modified_by"`
	ModifiedAt *time.Time `json:"modifiedAt" db:"modified_at"`

	IntakeID     uuid.UUID                             `json:"intakeId" db:"intake_id"`
	Feedback     HTML                                  `json:"feedback" db:"feedback"`
	SourceAction GovernanceRequestFeedbackSourceAction `json:"sourceAction" db:"source_action"`
	TargetForm   GovernanceRequestFeedbackTargetForm   `json:"targetForm" db:"target_form"`
	Type         GovernanceRequestFeedbackType         `json:"type" db:"type"`
}

GovernanceRequestFeedback represents feedback given to the requester on a governance request

func (GovernanceRequestFeedback) GetMappingKey

func (g GovernanceRequestFeedback) GetMappingKey() uuid.UUID

func (GovernanceRequestFeedback) GetMappingVal

type GovernanceRequestFeedbackSourceAction

type GovernanceRequestFeedbackSourceAction string

GovernanceRequestFeedbackSourceAction is an eumeration of the possible actions that can provide feedback on a governance request

const (
	GRFSARequestEdits      GovernanceRequestFeedbackSourceAction = "REQUEST_EDITS"
	GRFSAProgressToNewStep GovernanceRequestFeedbackSourceAction = "PROGRESS_TO_NEW_STEP"
)

These are the possible forms that can provide feedback

type GovernanceRequestFeedbackTargetForm

type GovernanceRequestFeedbackTargetForm string

GovernanceRequestFeedbackTargetForm is an enumeration of the possible forms on a governance intake request that can receive feedback

const (
	GRFTFNoTargetProvided  GovernanceRequestFeedbackTargetForm = "NO_TARGET_PROVIDED"
	GRFTFIntakeRequest     GovernanceRequestFeedbackTargetForm = "INTAKE_REQUEST"
	GRFTFDraftBusinessCase GovernanceRequestFeedbackTargetForm = "DRAFT_BUSINESS_CASE"
	GRFTFinalBusinessCase  GovernanceRequestFeedbackTargetForm = "FINAL_BUSINESS_CASE"
)

These are the possible forms that can have governance request feedback

func (GovernanceRequestFeedbackTargetForm) Humanize

Humanize translates a GovernanceRequestFeedbackTargetForm to human readable text

type GovernanceRequestFeedbackType

type GovernanceRequestFeedbackType string

GovernanceRequestFeedbackType is an enumeration of the possible types of feedback on governance requests, based on who it's directed to

const (
	GRFTRequester GovernanceRequestFeedbackType = "REQUESTER"
	GRFTGRB       GovernanceRequestFeedbackType = "GRB"
)

These are the possible types of recipients of feedback on governanance requests

type HTML

type HTML string

HTML represents html code. It is sanitized when unmarshaled from graphQL or when converted to HTML to only allow specific tags

func HTMLPointer

func HTMLPointer(input string) *HTML

HTMLPointer returns a pointer to an HTML type from a string input

func (HTML) MarshalGQLContext

func (h HTML) MarshalGQLContext(ctx context.Context, w io.Writer) error

MarshalGQLContext marshals the HTML type to JSON to return to graphQL

func (*HTML) StringPointer

func (h *HTML) StringPointer() *string

StringPointer casts an HTML pointer to a string pointer

func (*HTML) ToTemplate

func (h *HTML) ToTemplate() template.HTML

ToTemplate converts and sanitizes the HTML type to a template.HTML struct

func (*HTML) UnmarshalGQLContext

func (h *HTML) UnmarshalGQLContext(ctx context.Context, v interface{}) error

UnmarshalGQLContext unmarshals the data from graphql to the HTML type

func (*HTML) ValueOrEmptyHTML

func (h *HTML) ValueOrEmptyHTML() HTML

ValueOrEmptyHTML returns either the value of the html or an empty HTML type if nil

func (*HTML) ValueOrEmptyString

func (h *HTML) ValueOrEmptyString() string

ValueOrEmptyString returns either the value of the html or an empty string if nil

type IBaseStruct

type IBaseStruct interface {
	// GetBaseStruct() *BaseStruct
	GetID() uuid.UUID
	GetCreatedBy() string
	GetModifiedBy() *string
	// This method sets the modified properties of a BaseStruct using the information provided by a principal object
	SetModifiedBy(principal authentication.Principal) error
}

IBaseStruct is an interface that all models must implement

type ITGovDecisionStatus

type ITGovDecisionStatus string

ITGovDecisionStatus represents the types of ITGovDecisionStatus types. This is what the requestor sees for the third task.

const (
	ITGDSCantStart ITGovDecisionStatus = "CANT_START"
	ITGDSInReview  ITGovDecisionStatus = "IN_REVIEW"
	ITGDSCompleted ITGovDecisionStatus = "COMPLETED"
)

These are the options for ITGovDecisionStatus

type ITGovDraftBusinessCaseStatus

type ITGovDraftBusinessCaseStatus string

ITGovDraftBusinessCaseStatus represents the types of ITGovDraftBusinessCaseStatus types. This is what the requestor sees for the optional fourth task.

const (
	ITGDBCSCantStart      ITGovDraftBusinessCaseStatus = "CANT_START"
	ITGDBCSNotNeeded      ITGovDraftBusinessCaseStatus = "NOT_NEEDED"
	ITGDBCSReady          ITGovDraftBusinessCaseStatus = "READY"
	ITGDBCSInProgress     ITGovDraftBusinessCaseStatus = "IN_PROGRESS"
	ITGDBCSEditsRequested ITGovDraftBusinessCaseStatus = "EDITS_REQUESTED"
	ITGDBCSSubmitted      ITGovDraftBusinessCaseStatus = "SUBMITTED"
	ITGDBCSDone           ITGovDraftBusinessCaseStatus = "DONE"
)

These are the options for ITGovDraftBusinessCaseStatus

type ITGovFeedbackStatus

type ITGovFeedbackStatus string

ITGovFeedbackStatus represents the types of ITGovFeedbackStatus types. This is what the requestor sees for the second task.

const (
	ITGFBSCantStart ITGovFeedbackStatus = "CANT_START"
	ITGFBSInReview  ITGovFeedbackStatus = "IN_REVIEW"
	ITGFBSCompleted ITGovFeedbackStatus = "COMPLETED"
)

These are the options for ITGovFeedbackStatus

type ITGovFinalBusinessCaseStatus

type ITGovFinalBusinessCaseStatus string

ITGovFinalBusinessCaseStatus represents the types of ITGovFinalBusinessCaseStatus types. This is what the requestor sees for the optional sixth task.

const (
	ITGFBCSCantStart      ITGovFinalBusinessCaseStatus = "CANT_START"
	ITGFBCSNotNeeded      ITGovFinalBusinessCaseStatus = "NOT_NEEDED"
	ITGFBCSReady          ITGovFinalBusinessCaseStatus = "READY"
	ITGFBCSInProgress     ITGovFinalBusinessCaseStatus = "IN_PROGRESS"
	ITGFBCSEditsRequested ITGovFinalBusinessCaseStatus = "EDITS_REQUESTED"
	ITGFBCSSubmitted      ITGovFinalBusinessCaseStatus = "SUBMITTED"
	ITGFBCSDone           ITGovFinalBusinessCaseStatus = "DONE"
)

These are the options for ITGovFinalBusinessCaseStatus

type ITGovGRBStatus

type ITGovGRBStatus string

ITGovGRBStatus represents the types of ITGovGRBStatus types. This is what the requestor sees for the optional seventh task.

const (
	ITGGRBSCantStart        ITGovGRBStatus = "CANT_START"
	ITGGRBSNotNeeded        ITGovGRBStatus = "NOT_NEEDED"
	ITGGRBSReadyToSchedule  ITGovGRBStatus = "READY_TO_SCHEDULE"
	ITGGRBSScheduled        ITGovGRBStatus = "SCHEDULED"
	ITGGRBSAwaitingDecision ITGovGRBStatus = "AWAITING_DECISION"
	ITGGRBSCompleted        ITGovGRBStatus = "COMPLETED"
)

These are the options for ITGovGRBStatus

type ITGovGRTStatus

type ITGovGRTStatus string

ITGovGRTStatus represents the types of ITGovGRTStatus types. This is what the requestor sees for the optional fifth task.

const (
	ITGGRTSCantStart        ITGovGRTStatus = "CANT_START"
	ITGGRTSNotNeeded        ITGovGRTStatus = "NOT_NEEDED"
	ITGGRTSReadyToSchedule  ITGovGRTStatus = "READY_TO_SCHEDULE"
	ITGGRTSScheduled        ITGovGRTStatus = "SCHEDULED"
	ITGGRTSAwaitingDecision ITGovGRTStatus = "AWAITING_DECISION"
	ITGGRTSCompleted        ITGovGRTStatus = "COMPLETED"
)

These are the options for ITGovGRTStatus

type ITGovIntakeFormStatus

type ITGovIntakeFormStatus string

ITGovIntakeFormStatus represents the types of ITGovIntakeFormStatus types. This is what the requester sees for the first task

const (
	ITGISReady          ITGovIntakeFormStatus = "READY"
	ITGISInProgress     ITGovIntakeFormStatus = "IN_PROGRESS"
	ITGISEditsRequested ITGovIntakeFormStatus = "EDITS_REQUESTED"
	ITGISCompleted      ITGovIntakeFormStatus = "COMPLETED"
)

These are the options for ITGovIntakeStatus

type ITGovTaskStatuses

type ITGovTaskStatuses struct {
	ParentSystemIntake *SystemIntake
}

ITGovTaskStatuses is a helper struct used by GQL to wrap a returned System Intake, so section statuses can be calculated only when requested

type IntakeReview

type IntakeReview struct {
	IntakeID  uuid.UUID
	Decision  IntakeReviewDecision
	EmailText string
}

IntakeReview models the GRT review form for a system intake

type IntakeReviewDecision

type IntakeReviewDecision string

IntakeReviewDecision represents the decision on an intake review

const (
	// IntakeReviewDecisionISSUEID captures enum value "ISSUE_ID"
	IntakeReviewDecisionISSUEID IntakeReviewDecision = "ISSUE_ID"
	// IntakeReviewDecisionREVIEWNEEDED captures enum value "REVIEW_PROCESS_NEEDED"
	IntakeReviewDecisionREVIEWNEEDED IntakeReviewDecision = "REVIEW_PROCESS_NEEDED"
	// IntakeReviewDecisionGOVERNANCENOTNEEDED captures enum value "GOVERNANCE_NOT_NEEDED"
	IntakeReviewDecisionGOVERNANCENOTNEEDED IntakeReviewDecision = "GOVERNANCE_NOT_NEEDED"
)

type LaunchDarklySettings

type LaunchDarklySettings struct {
	UserKey    string `json:"userKey"`
	SignedHash string `json:"signedHash"`
}

The current user's Launch Darkly key

type LifecycleCostPhase

type LifecycleCostPhase string

LifecycleCostPhase represents the phase of a lifecycle cost line

type LifecycleCostSolution

type LifecycleCostSolution string

LifecycleCostSolution represents the solution associated with the line

type LifecycleCostYear

type LifecycleCostYear string

LifecycleCostYear represents the year associated with the line

type Mutation

type Mutation struct {
}

Defines the mutations for the schema

type PersonRole

type PersonRole string

PersonRole is an enumeration of values representing the role of a person (currently in use for TRBRequestAttendee and potentially SystemIntakeContact in the future)

const (
	// PersonRoleBusinessOwner is a person with the "Business Owner" role
	PersonRoleBusinessOwner PersonRole = "BUSINESS_OWNER"
	// PersonRoleProductOwner is a person with the "Product Owner" role
	PersonRoleProductOwner PersonRole = "PRODUCT_OWNER"
	// PersonRoleSystemOwner is a person with the "System Owner" role
	PersonRoleSystemOwner PersonRole = "SYSTEM_OWNER"
	// PersonRoleSystemMaintainer is a person with the "System Maintainer" role
	PersonRoleSystemMaintainer PersonRole = "SYSTEM_MAINTAINER"
	// PersonRoleContractOfficersRepresentative is a person with the "ContractOfficersRepresentative" role
	PersonRoleContractOfficersRepresentative PersonRole = "CONTRACT_OFFICE_RSREPRESENTATIVE"
	// PersonRoleCloudNavigator is a person with the "Cloud Navigator" role
	PersonRoleCloudNavigator PersonRole = "CLOUD_NAVIGATOR"
	// PersonRoleInformationSystemSecurityAdvisor is a person with the "Information System Security Advisor" role
	PersonRoleInformationSystemSecurityAdvisor PersonRole = "INFORMATION_SYSTEM_SECURITY_ADVISOR"
	// PersonRolePrivacyAdvisor is a person with the "Privacy Advisor" role
	PersonRolePrivacyAdvisor PersonRole = "PRIVACY_ADVISOR"
	// PersonRoleCRA is a person with the "Cyber Risk Advisor (CRA)" role
	PersonRoleCRA PersonRole = "CRA"
	// PersonRoleOther is a person with the "Other" role
	PersonRoleOther PersonRole = "OTHER"
)

type Query

type Query struct {
}

Query definition for the schema

type RelatedSystemIntake

type RelatedSystemIntake struct {
	SystemIntake
	RelatedRequestID uuid.UUID `db:"related_request_id"`
}

RelatedSystemIntake is used when intakes are selected from the DB using linking tables and the related request ID is added as an aliased column. This struct with the added related request ID allows for using the mapping helpers in the dataloader package.

func (RelatedSystemIntake) GetMappingKey

func (s RelatedSystemIntake) GetMappingKey() uuid.UUID

func (RelatedSystemIntake) GetMappingVal

func (s RelatedSystemIntake) GetMappingVal() *SystemIntake

type RelatedTRBRequest

type RelatedTRBRequest struct {
	TRBRequest
	RelatedRequestID uuid.UUID `db:"related_request_id"`
}

RelatedTRBRequest is used when TRB Reqs are selected from the DB using linking tables and the related request ID is added as an aliased column. This struct with the added related request ID allows for using the mapping helpers in the dataloader package.

func (RelatedTRBRequest) GetMappingKey

func (t RelatedTRBRequest) GetMappingKey() uuid.UUID

func (RelatedTRBRequest) GetMappingVal

func (t RelatedTRBRequest) GetMappingVal() *TRBRequest

type ReopenTRBRequestInput

type ReopenTRBRequestInput struct {
	TrbRequestID   uuid.UUID `json:"trbRequestId"`
	ReasonReopened HTML      `json:"reasonReopened"`
	CopyTrbMailbox bool      `json:"copyTrbMailbox"`
	NotifyEuaIds   []string  `json:"notifyEuaIds"`
}

The data needed to reopen a TRB request

type RequestRelationType

type RequestRelationType string

RequestRelationType represents an enum for different relation types of intakes

const (
	RelationTypeNewSystem       RequestRelationType = "NEW_SYSTEM"
	RelationTypeExistingSystem  RequestRelationType = "EXISTING_SYSTEM"
	RelationTypeExistingService RequestRelationType = "EXISTING_SERVICE"
)

Possible values of SystemIntakeRelationType

type Role

type Role string

A user role associated with a job code

const (
	// An admin on the GRT
	RoleEasiGovteam Role = "EASI_GOVTEAM"
	// An admin on the TRB
	RoleEasiTrbAdmin Role = "EASI_TRB_ADMIN"
	// A generic EASi user
	RoleEasiUser Role = "EASI_USER"
)

func (Role) IsValid

func (e Role) IsValid() bool

func (Role) MarshalGQL

func (e Role) MarshalGQL(w io.Writer)

func (Role) String

func (e Role) String() string

func (*Role) UnmarshalGQL

func (e *Role) UnmarshalGQL(v interface{}) error

type SIGRBReviewerRole

type SIGRBReviewerRole string
const (
	SIGRBRRCoChairCIO          SIGRBReviewerRole = "CO_CHAIR_CIO"
	SIGRBRRCoChairCFO          SIGRBReviewerRole = "CO_CHAIR_CFO"
	SIGRBRRCoChairHCA          SIGRBReviewerRole = "CO_CHAIR_HCA"
	SIGRBRRACA3021Rep          SIGRBReviewerRole = "ACA_3021_REP"
	SIGRBRRCCIIORep            SIGRBReviewerRole = "CCIIO_REP"
	SIGRBRRProgOpBDGChair      SIGRBReviewerRole = "PROGRAM_OPERATIONS_BDG_CHAIR"
	SIGRBRRCMCSRep             SIGRBReviewerRole = "CMCS_REP"
	SIGRBRRFedAdminBDGChair    SIGRBReviewerRole = "FED_ADMIN_BDG_CHAIR"
	SIGRBRRProgIntBDGChair     SIGRBReviewerRole = "PROGRAM_INTEGRITY_BDG_CHAIR"
	SIGRBRRQIORep              SIGRBReviewerRole = "QIO_REP"
	SIGRBRRSubjectMatterExpert SIGRBReviewerRole = "SUBJECT_MATTER_EXPERT"
	SIGRBRROther               SIGRBReviewerRole = "OTHER"
)

type SIGRBReviewerVotingRole

type SIGRBReviewerVotingRole string
const (
	SIGRBRVRVoting    SIGRBReviewerVotingRole = "VOTING"
	SIGRBRVRNonVoting SIGRBReviewerVotingRole = "NON_VOTING"
	SIGRBRVRAlternate SIGRBReviewerVotingRole = "ALTERNATE"
)

type SendCantFindSomethingEmailInput

type SendCantFindSomethingEmailInput struct {
	Body string `json:"body"`
}

type SendFeedbackEmailInput

type SendFeedbackEmailInput struct {
	IsAnonymous            bool     `json:"isAnonymous"`
	CanBeContacted         bool     `json:"canBeContacted"`
	EasiServicesUsed       []string `json:"easiServicesUsed"`
	CmsRole                string   `json:"cmsRole"`
	SystemEasyToUse        string   `json:"systemEasyToUse"`
	DidntNeedHelpAnswering string   `json:"didntNeedHelpAnswering"`
	QuestionsWereRelevant  string   `json:"questionsWereRelevant"`
	HadAccessToInformation string   `json:"hadAccessToInformation"`
	HowSatisfied           string   `json:"howSatisfied"`
	HowCanWeImprove        string   `json:"howCanWeImprove"`
}

The inputs to the user feedback form

type SendReportAProblemEmailInput

type SendReportAProblemEmailInput struct {
	IsAnonymous            bool   `json:"isAnonymous"`
	CanBeContacted         bool   `json:"canBeContacted"`
	EasiService            string `json:"easiService"`
	WhatWereYouDoing       string `json:"whatWereYouDoing"`
	WhatWentWrong          string `json:"whatWentWrong"`
	HowSevereWasTheProblem string `json:"howSevereWasTheProblem"`
}

type SendTRBGuidanceLetterInput

type SendTRBGuidanceLetterInput struct {
	ID             uuid.UUID `json:"id"`
	CopyTrbMailbox bool      `json:"copyTrbMailbox"`
	NotifyEuaIds   []string  `json:"notifyEuaIds"`
}

The data needed to send a TRB guidance letter, including who to notify

type SetRolesForUserOnSystemInput

type SetRolesForUserOnSystemInput struct {
	CedarSystemID      string   `json:"cedarSystemID"`
	EuaUserID          string   `json:"euaUserId"`
	DesiredRoleTypeIDs []string `json:"desiredRoleTypeIDs"`
}

type SetSystemIntakeRelationExistingServiceInput

type SetSystemIntakeRelationExistingServiceInput struct {
	SystemIntakeID  uuid.UUID `json:"systemIntakeID"`
	ContractName    string    `json:"contractName"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SetSystemIntakeRelationExistingSystemInput

type SetSystemIntakeRelationExistingSystemInput struct {
	SystemIntakeID  uuid.UUID `json:"systemIntakeID"`
	CedarSystemIDs  []string  `json:"cedarSystemIDs"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SetSystemIntakeRelationNewSystemInput

type SetSystemIntakeRelationNewSystemInput struct {
	SystemIntakeID  uuid.UUID `json:"systemIntakeID"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SetTRBRequestRelationExistingServiceInput

type SetTRBRequestRelationExistingServiceInput struct {
	TrbRequestID    uuid.UUID `json:"trbRequestID"`
	ContractName    string    `json:"contractName"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SetTRBRequestRelationExistingSystemInput

type SetTRBRequestRelationExistingSystemInput struct {
	TrbRequestID    uuid.UUID `json:"trbRequestID"`
	CedarSystemIDs  []string  `json:"cedarSystemIDs"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SetTRBRequestRelationNewSystemInput

type SetTRBRequestRelationNewSystemInput struct {
	TrbRequestID    uuid.UUID `json:"trbRequestID"`
	ContractNumbers []string  `json:"contractNumbers"`
}

type SoftwareProductItem

type SoftwareProductItem struct {
	APIGatewayUse                  bool        `json:"api_gateway_use,omitempty"`
	ElaPurchase                    zero.String `json:"ela_purchase,omitempty"`
	ElaVendorID                    zero.String `json:"ela_vendor_id,omitempty"`
	ProvidesAiCapability           bool        `json:"provides_ai_capability,omitempty"`
	Refstr                         zero.String `json:"refstr,omitempty"`
	SoftwareCatagoryConnectionGUID zero.String `json:"softwareCatagoryConnectionGuid,omitempty"`
	SoftwareVendorConnectionGUID   zero.String `json:"softwareVendorConnectionGuid,omitempty"`
	SoftwareCost                   zero.String `json:"software_cost,omitempty"`
	SoftwareElaOrganization        zero.String `json:"software_ela_organization,omitempty"`
	SoftwareName                   zero.String `json:"software_name,omitempty"`
	SystemSoftwareConnectionGUID   zero.String `json:"systemSoftwareConnectionGuid,omitempty"`
	TechnopediaCategory            zero.String `json:"technopedia_category,omitempty"`
	TechnopediaID                  zero.String `json:"technopedia_id,omitempty"`
	VendorName                     zero.String `json:"vendor_name,omitempty"`
}

SoftwareProductItem represents a single SoftwareProductSearchItem object which is an internal struct used in SoftwareProduct

type StartGRBReviewInput

type StartGRBReviewInput struct {
	SystemIntakeID uuid.UUID `json:"systemIntakeID"`
}

Input for starting a GRB Review, which notifies reviewers by email

type SubmitIntakeInput

type SubmitIntakeInput struct {
	ID uuid.UUID `json:"id"`
}

Input to submit an intake for review

type SystemIntake

type SystemIntake struct {
	ID                              uuid.UUID                    `json:"id"`
	EUAUserID                       null.String                  `json:"euaUserId" db:"eua_user_id"`
	State                           SystemIntakeState            `json:"state" db:"state"`
	Step                            SystemIntakeStep             `json:"step" db:"step"`
	RequestType                     SystemIntakeRequestType      `json:"requestType" db:"request_type"`
	Requester                       string                       `json:"requester"`
	Component                       null.String                  `json:"component"`
	BusinessOwner                   null.String                  `json:"businessOwner" db:"business_owner"`
	BusinessOwnerComponent          null.String                  `json:"businessOwnerComponent" db:"business_owner_component"`
	ProductManager                  null.String                  `json:"productManager" db:"product_manager"`
	ProductManagerComponent         null.String                  `json:"productManagerComponent" db:"product_manager_component"`
	ISSO                            null.String                  `json:"isso"`
	ISSOName                        null.String                  `json:"issoName" db:"isso_name"`
	TRBCollaborator                 null.String                  `json:"trbCollaborator" db:"trb_collaborator"`
	TRBCollaboratorName             null.String                  `json:"trbCollaboratorName" db:"trb_collaborator_name"`
	OITSecurityCollaborator         null.String                  `json:"oitSecurityCollaborator" db:"oit_security_collaborator"`
	OITSecurityCollaboratorName     null.String                  `json:"oitSecurityCollaboratorName" db:"oit_security_collaborator_name"`
	EACollaborator                  null.String                  `json:"eaCollaborator" db:"ea_collaborator"`
	EACollaboratorName              null.String                  `json:"eaCollaboratorName" db:"ea_collaborator_name"`
	ProjectName                     null.String                  `json:"projectName" db:"project_name"`
	ProjectAcronym                  null.String                  `json:"projectAcronym" db:"project_acronym"`
	BusinessNeed                    null.String                  `json:"businessNeed" db:"business_need"`
	Solution                        null.String                  `json:"solution"`
	ProcessStatus                   null.String                  `json:"processStatus" db:"process_status"`
	EASupportRequest                null.Bool                    `json:"eaSupportRequest" db:"ea_support_request"`
	ExistingContract                null.String                  `json:"existingContract" db:"existing_contract"`
	CostIncrease                    null.String                  `json:"costIncrease" db:"cost_increase"`
	CostIncreaseAmount              null.String                  `json:"costIncreaseAmount" db:"cost_increase_amount"`
	CurrentAnnualSpending           null.String                  `json:"currentAnnualSpending" db:"current_annual_spending"`
	CurrentAnnualSpendingITPortion  null.String                  `json:"currentAnnualSpendingITPortion" db:"current_annual_spending_it_portion"`
	PlannedYearOneSpending          null.String                  `json:"plannedYearOneSpending" db:"planned_year_one_spending"`
	PlannedYearOneSpendingITPortion null.String                  `json:"plannedYearOneSpendingITPortion" db:"planned_year_one_spending_it_portion"`
	Contractor                      null.String                  `json:"contractor" db:"contractor"`
	ContractVehicle                 null.String                  `json:"contractVehicle" db:"contract_vehicle"`
	ContractStartDate               *time.Time                   `json:"contractStartDate" db:"contract_start_date"`
	ContractStartMonth              null.String                  `json:"contractStartMonth" db:"contract_start_month"`
	ContractStartYear               null.String                  `json:"contractStartYear" db:"contract_start_year"`
	ContractEndDate                 *time.Time                   `json:"contractEndDate" db:"contract_end_date"`
	ContractEndMonth                null.String                  `json:"contractEndMonth" db:"contract_end_month"`
	ContractEndYear                 null.String                  `json:"contractEndYear" db:"contract_end_year"`
	CreatedAt                       *time.Time                   `json:"createdAt" db:"created_at"`
	UpdatedAt                       *time.Time                   `json:"updatedAt" db:"updated_at"`
	SubmittedAt                     *time.Time                   `json:"submittedAt" db:"submitted_at"`
	DecidedAt                       *time.Time                   `json:"decidedAt" db:"decided_at"`
	ArchivedAt                      *time.Time                   `json:"archivedAt" db:"archived_at"`
	GRTDate                         *time.Time                   `json:"grtDate" db:"grt_date"`
	GRBDate                         *time.Time                   `json:"grbDate" db:"grb_date"`
	GRBReviewStartedAt              *time.Time                   `json:"grbReviewStartedAt" db:"grb_review_started_at"`
	AlfabetID                       null.String                  `json:"alfabetID" db:"alfabet_id"`
	GrtReviewEmailBody              null.String                  `json:"grtReviewEmailBody" db:"grt_review_email_body"`
	RequesterEmailAddress           null.String                  `json:"requesterEmailAddress" db:"requester_email_address"`
	BusinessCaseID                  *uuid.UUID                   `json:"businessCase" db:"business_case_id"`
	LifecycleID                     null.String                  `json:"lcid" db:"lcid"`
	LifecycleExpiresAt              *time.Time                   `json:"lcidExpiresAt" db:"lcid_expires_at" gqlgen:"lcidExpiresAt"`
	LifecycleScope                  *HTML                        `json:"lcidScope" db:"lcid_scope"`
	LifecycleCostBaseline           null.String                  `json:"lcidCostBaseline" db:"lcid_cost_baseline"`
	LifecycleExpirationAlertTS      *time.Time                   `json:"lcidExpirationAlertTS" db:"lcid_expiration_alert_ts"`
	LifecycleRetiresAt              *time.Time                   `json:"lcidRetiresAt" db:"lcid_retires_at" gqlgen:"lcidRetiresAt"`
	LifecycleIssuedAt               *time.Time                   `json:"lcidIssuedAt" db:"lcid_issued_at" gqlgen:"lcidIssuedAt"`
	DecisionNextSteps               *HTML                        `json:"decisionNextSteps" db:"decision_next_steps"`
	RejectionReason                 *HTML                        `json:"rejectionReason" db:"rejection_reason"`
	AdminLead                       null.String                  `json:"adminLead" db:"admin_lead"`
	CedarSystemID                   null.String                  `json:"cedarSystemId" db:"cedar_system_id"`
	ExistingFunding                 null.Bool                    `json:"existingFunding" db:"existing_funding"`
	FundingSource                   null.String                  `json:"fundingSource" db:"funding_source"`
	FundingNumber                   null.String                  `json:"fundingNumber" db:"funding_number"`
	FundingSources                  []*SystemIntakeFundingSource `json:"fundingSources"`
	HasUIChanges                    null.Bool                    `json:"hasUiChanges" db:"has_ui_changes"`
	UsesAITech                      null.Bool                    `json:"usesAiTech" db:"uses_ai_tech"`
	UsingSoftware                   zero.String                  `json:"usingSoftware" db:"using_software"`
	AcquisitionMethods              pq.StringArray               `json:"acquisitionMethods" db:"acquisition_methods"`
	RequestFormState                SystemIntakeFormState        `json:"requestFormState" db:"request_form_state"`
	DraftBusinessCaseState          SystemIntakeFormState        `json:"draftBusinessCaseState" db:"draft_business_case_state"`
	FinalBusinessCaseState          SystemIntakeFormState        `json:"finalBusinessCaseState" db:"final_business_case_state"`
	DecisionState                   SystemIntakeDecisionState    `json:"decisionState" db:"decision_state"`
	TRBFollowUpRecommendation       *SystemIntakeTRBFollowUp     `json:"trbFollowUpRecommendation" db:"trb_follow_up_recommendation"`
	ContractName                    zero.String                  `json:"contractName" db:"contract_name"`
	SystemRelationType              *RequestRelationType         `json:"relationType" db:"system_relation_type"`
}

SystemIntake is the model for the system intake form

func (*SystemIntake) GRBMeetingState

func (si *SystemIntake) GRBMeetingState() SystemIntakeMeetingState

GRBMeetingState returns if a GRBMeeting has been scheduled or not

func (*SystemIntake) GRTMeetingState

func (si *SystemIntake) GRTMeetingState() SystemIntakeMeetingState

GRTMeetingState returns if a GRTMeeting has been scheduled or not

func (*SystemIntake) LCIDStatus

func (si *SystemIntake) LCIDStatus(currentTime time.Time) *SystemIntakeLCIDStatus

LCIDStatus returns the status of this intake's LCID, if present

type SystemIntakeAction

type SystemIntakeAction struct {
	ID                     uuid.UUID                         `json:"id"`
	SystemIntake           *SystemIntake                     `json:"systemIntake"`
	Type                   SystemIntakeActionType            `json:"type"`
	Actor                  *SystemIntakeActionActor          `json:"actor"`
	Step                   *SystemIntakeStep                 `json:"step,omitempty"`
	Feedback               *HTML                             `json:"feedback,omitempty"`
	LcidExpirationChange   *SystemIntakeLCIDExpirationChange `json:"lcidExpirationChange,omitempty"`
	PreviousRetirementDate *time.Time                        `json:"previousRetirementDate,omitempty"`
	NewRetirementDate      *time.Time                        `json:"newRetirementDate,omitempty"`
	CreatedAt              time.Time                         `json:"createdAt"`
}

An action taken on a system intake, often resulting in a change in status.

type SystemIntakeActionActor

type SystemIntakeActionActor struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

The contact who is associated with an action being done to a system request

type SystemIntakeActionType

type SystemIntakeActionType string

Represents the type of an action that is being done to a system request

const (
	SystemIntakeActionTypeProgressToNewStep              SystemIntakeActionType = "PROGRESS_TO_NEW_STEP"
	SystemIntakeActionTypeRequestEdits                   SystemIntakeActionType = "REQUEST_EDITS"
	SystemIntakeActionTypeExpireLcid                     SystemIntakeActionType = "EXPIRE_LCID"
	SystemIntakeActionTypeNotGovernance                  SystemIntakeActionType = "NOT_GOVERNANCE"
	SystemIntakeActionTypeCloseRequest                   SystemIntakeActionType = "CLOSE_REQUEST"
	SystemIntakeActionTypeReopenRequest                  SystemIntakeActionType = "REOPEN_REQUEST"
	SystemIntakeActionTypeUpdateLcid                     SystemIntakeActionType = "UPDATE_LCID"
	SystemIntakeActionTypeConfirmLcid                    SystemIntakeActionType = "CONFIRM_LCID"
	SystemIntakeActionTypeRetireLcid                     SystemIntakeActionType = "RETIRE_LCID"
	SystemIntakeActionTypeUnretireLcid                   SystemIntakeActionType = "UNRETIRE_LCID"
	SystemIntakeActionTypeChangeLcidRetirementDate       SystemIntakeActionType = "CHANGE_LCID_RETIREMENT_DATE"
	SystemIntakeActionTypeIssueLcid                      SystemIntakeActionType = "ISSUE_LCID"
	SystemIntakeActionTypeSubmitIntake                   SystemIntakeActionType = "SUBMIT_INTAKE"
	SystemIntakeActionTypeReject                         SystemIntakeActionType = "REJECT"
	SystemIntakeActionTypeBizCaseNeedsChanges            SystemIntakeActionType = "BIZ_CASE_NEEDS_CHANGES"
	SystemIntakeActionTypeCreateBizCase                  SystemIntakeActionType = "CREATE_BIZ_CASE"
	SystemIntakeActionTypeGUIDEReceivedClose             SystemIntakeActionType = "GUIDE_RECEIVED_CLOSE"
	SystemIntakeActionTypeExtendLcid                     SystemIntakeActionType = "EXTEND_LCID"
	SystemIntakeActionTypeNeedBizCase                    SystemIntakeActionType = "NEED_BIZ_CASE"
	SystemIntakeActionTypeNoGovernanceNeeded             SystemIntakeActionType = "NO_GOVERNANCE_NEEDED"
	SystemIntakeActionTypeNotItRequest                   SystemIntakeActionType = "NOT_IT_REQUEST"
	SystemIntakeActionTypeNotRespondingClose             SystemIntakeActionType = "NOT_RESPONDING_CLOSE"
	SystemIntakeActionTypeProvideFeedbackNeedBizCase     SystemIntakeActionType = "PROVIDE_FEEDBACK_NEED_BIZ_CASE"
	SystemIntakeActionTypeProvideGrtFeedbackBizCaseDraft SystemIntakeActionType = "PROVIDE_GRT_FEEDBACK_BIZ_CASE_DRAFT"
	SystemIntakeActionTypeProvideGrtFeedbackBizCaseFinal SystemIntakeActionType = "PROVIDE_GRT_FEEDBACK_BIZ_CASE_FINAL"
	SystemIntakeActionTypeReadyForGrb                    SystemIntakeActionType = "READY_FOR_GRB"
	SystemIntakeActionTypeReadyForGrt                    SystemIntakeActionType = "READY_FOR_GRT"
	SystemIntakeActionTypeSendEmail                      SystemIntakeActionType = "SEND_EMAIL"
	SystemIntakeActionTypeSubmitBizCase                  SystemIntakeActionType = "SUBMIT_BIZ_CASE"
	SystemIntakeActionTypeSubmitFinalBizCase             SystemIntakeActionType = "SUBMIT_FINAL_BIZ_CASE"
)

func (SystemIntakeActionType) IsValid

func (e SystemIntakeActionType) IsValid() bool

func (SystemIntakeActionType) MarshalGQL

func (e SystemIntakeActionType) MarshalGQL(w io.Writer)

func (SystemIntakeActionType) String

func (e SystemIntakeActionType) String() string

func (*SystemIntakeActionType) UnmarshalGQL

func (e *SystemIntakeActionType) UnmarshalGQL(v interface{}) error

type SystemIntakeAnnualSpending

type SystemIntakeAnnualSpending struct {
	CurrentAnnualSpending           *string `json:"currentAnnualSpending,omitempty"`
	CurrentAnnualSpendingITPortion  *string `json:"currentAnnualSpendingITPortion,omitempty"`
	PlannedYearOneSpending          *string `json:"plannedYearOneSpending,omitempty"`
	PlannedYearOneSpendingITPortion *string `json:"plannedYearOneSpendingITPortion,omitempty"`
}

Represents current and planned annual costs for a system

type SystemIntakeAnnualSpendingInput

type SystemIntakeAnnualSpendingInput struct {
	CurrentAnnualSpending           *string `json:"currentAnnualSpending,omitempty"`
	CurrentAnnualSpendingITPortion  *string `json:"currentAnnualSpendingITPortion,omitempty"`
	PlannedYearOneSpending          *string `json:"plannedYearOneSpending,omitempty"`
	PlannedYearOneSpendingITPortion *string `json:"plannedYearOneSpendingITPortion,omitempty"`
}

Input data for current and planned year one annual costs associated with a system request

type SystemIntakeBusinessOwner

type SystemIntakeBusinessOwner struct {
	Component *string `json:"component,omitempty"`
	Name      *string `json:"name,omitempty"`
}

Represents the OIT business owner of a system

type SystemIntakeBusinessOwnerInput

type SystemIntakeBusinessOwnerInput struct {
	Name      string `json:"name"`
	Component string `json:"component"`
}

The input data used to set the CMS business owner of a system

type SystemIntakeChangeLCIDRetirementDateInput

type SystemIntakeChangeLCIDRetirementDateInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	RetiresAt              time.Time                    `json:"retiresAt"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for changing an intake's LCID retirement date in IT Gov v2

type SystemIntakeCloseRequestInput

type SystemIntakeCloseRequestInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	Reason                 *HTML                        `json:"reason,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for creating a Close Request Action in Admin Actions v2

type SystemIntakeCollaborator

type SystemIntakeCollaborator struct {
	Acronym      string `json:"acronym"`
	Collaborator string `json:"collaborator"`
	Key          string `json:"key"`
	Label        string `json:"label"`
	Name         string `json:"name"`
}

Represents a contact in OIT who is collaborating with the user creating a system IT governance request

type SystemIntakeCollaboratorInput

type SystemIntakeCollaboratorInput struct {
	Collaborator string `json:"collaborator"`
	Name         string `json:"name"`
	Key          string `json:"key"`
}

The input data used to add an OIT collaborator for a system request

type SystemIntakeConfirmLCIDInput

type SystemIntakeConfirmLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	ExpiresAt              time.Time                    `json:"expiresAt"`
	Scope                  HTML                         `json:"scope"`
	NextSteps              HTML                         `json:"nextSteps"`
	TrbFollowUp            SystemIntakeTRBFollowUp      `json:"trbFollowUp"`
	CostBaseline           *string                      `json:"costBaseline,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for confirming an intake's decision to issue an LCID in IT Gov v2

type SystemIntakeContact

type SystemIntakeContact struct {
	ID             uuid.UUID  `json:"id"`
	EUAUserID      string     `json:"euaUserId" db:"eua_user_id"`
	SystemIntakeID uuid.UUID  `json:"systemIntakeId" db:"system_intake_id"`
	Component      string     `json:"component" db:"component"`
	Role           string     `json:"role" db:"role"`
	UpdatedAt      *time.Time `db:"updated_at"`
	CreatedAt      *time.Time `db:"created_at"`
}

SystemIntakeContact represents an EUA user's association with a system intake

type SystemIntakeContactsPayload

type SystemIntakeContactsPayload struct {
	SystemIntakeContacts []*AugmentedSystemIntakeContact `json:"systemIntakeContacts"`
	InvalidEUAIDs        []string                        `json:"invalidEUAIDs"`
}

The payload when retrieving system intake contacts

type SystemIntakeContract

type SystemIntakeContract struct {
	Contractor  *string       `json:"contractor,omitempty"`
	EndDate     *ContractDate `json:"endDate"`
	HasContract *string       `json:"hasContract,omitempty"`
	StartDate   *ContractDate `json:"startDate"`
	Vehicle     *string       `json:"vehicle,omitempty"`
}

Represents a contract for work on a system

type SystemIntakeContractInput

type SystemIntakeContractInput struct {
	Contractor  *string    `json:"contractor,omitempty"`
	EndDate     *time.Time `json:"endDate,omitempty"`
	HasContract *string    `json:"hasContract,omitempty"`
	StartDate   *time.Time `json:"startDate,omitempty"`
	Numbers     []string   `json:"numbers"`
}

Input data containing information about a contract related to a system request

type SystemIntakeContractNumber

type SystemIntakeContractNumber struct {
	BaseStructUser
	SystemIntakeID uuid.UUID `db:"system_intake_id"`
	ContractNumber string    `db:"contract_number"`
}

SystemIntakeContractNumber is the insertion type for linking a system intake to contract number(s)

func NewSystemIntakeContractNumber

func NewSystemIntakeContractNumber(createdBy uuid.UUID) SystemIntakeContractNumber

NewSystemIntakeContractNumber creates a SystemIntakeContractNumberLink

func (*SystemIntakeContractNumber) CreatedByUserAccount

func (cbr *SystemIntakeContractNumber) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (SystemIntakeContractNumber) GetMappingKey

func (s SystemIntakeContractNumber) GetMappingKey() uuid.UUID

func (SystemIntakeContractNumber) GetMappingVal

func (*SystemIntakeContractNumber) ModifiedByUserAccount

func (mbr *SystemIntakeContractNumber) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

type SystemIntakeCosts

type SystemIntakeCosts struct {
	ExpectedIncreaseAmount *string `json:"expectedIncreaseAmount,omitempty"`
	IsExpectingIncrease    *string `json:"isExpectingIncrease,omitempty"`
}

Represents expectations about a system's additional costs

type SystemIntakeCostsInput

type SystemIntakeCostsInput struct {
	ExpectedIncreaseAmount *string `json:"expectedIncreaseAmount,omitempty"`
	IsExpectingIncrease    *string `json:"isExpectingIncrease,omitempty"`
}

Input data for estimated system cost increases associated with a system request

NOTE: This field is no longer in intake form but data/query is preserved for existing intakes (EASI-2076)

type SystemIntakeDecisionState

type SystemIntakeDecisionState string

SystemIntakeDecisionState represents the types of SystemIntakeDecisionState types.

const (
	SIDSNoDecision    SystemIntakeDecisionState = "NO_DECISION"
	SIDSLcidIssued    SystemIntakeDecisionState = "LCID_ISSUED"
	SIDSNotApproved   SystemIntakeDecisionState = "NOT_APPROVED"
	SIDSNotGovernance SystemIntakeDecisionState = "NOT_GOVERNANCE"
)

These are the options for SystemIntakeDecisionState

type SystemIntakeDocument

type SystemIntakeDocument struct {
	BaseStruct
	SystemIntakeID     uuid.UUID                      `json:"systemIntakeId" db:"system_intake_id"`
	CommonDocumentType SystemIntakeDocumentCommonType `db:"document_type"`
	Version            SystemIntakeDocumentVersion    `db:"document_version" json:"version"`
	OtherType          string                         `db:"other_type"`
	FileName           string                         `json:"fileName" db:"file_name"`
	Bucket             string                         `json:"bucket" db:"bucket"`
	S3Key              string                         `json:"s3Key" db:"s3_key"` // The document's key inside an S3 bucket; does *not* include the bucket name.
	UploaderRole       DocumentUploaderRole           `json:"uploaderRole" db:"uploader_role"`
}

SystemIntakeDocument represents a document attached to a system intake that has been uploaded to S3

func (SystemIntakeDocument) GetMappingKey

func (d SystemIntakeDocument) GetMappingKey() uuid.UUID

func (SystemIntakeDocument) GetMappingVal

func (d SystemIntakeDocument) GetMappingVal() *SystemIntakeDocument

type SystemIntakeDocumentCommonType

type SystemIntakeDocumentCommonType string

SystemIntakeDocumentCommonType represents the document type, including an "OTHER" option for user-specified types

type SystemIntakeDocumentStatus

type SystemIntakeDocumentStatus string

SystemIntakeDocumentStatus represents the availability of a document in regards to virus scanning

type SystemIntakeDocumentType

type SystemIntakeDocumentType struct {
	CommonType           SystemIntakeDocumentCommonType `json:"commonType"`
	OtherTypeDescription *string                        `json:"otherTypeDescription,omitempty"`
}

Denotes the type of a document attached to a System Intake, which can be one of a number of common types, or a free-text user-specified type

type SystemIntakeDocumentVersion

type SystemIntakeDocumentVersion string

SystemIntakeDocumentVersion represents whether a document is recent and relevant or included for historical purposes

type SystemIntakeExpireLCIDInput

type SystemIntakeExpireLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	Reason                 HTML                         `json:"reason"`
	NextSteps              *HTML                        `json:"nextSteps,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for expiring an intake's LCID in IT Gov v2

type SystemIntakeFormState

type SystemIntakeFormState string

SystemIntakeFormState represents the possible states of of any System Intake form types.

const (
	SIRFSNotStarted     SystemIntakeFormState = "NOT_STARTED"
	SIRFSInProgress     SystemIntakeFormState = "IN_PROGRESS"
	SIRFSEditsRequested SystemIntakeFormState = "EDITS_REQUESTED"
	SIRFSSubmitted      SystemIntakeFormState = "SUBMITTED"
)

These are the options for SystemIntakeRequestFormState

type SystemIntakeFormStep

type SystemIntakeFormStep string

SystemIntakeRequestEditsOptions represents the current step in the intake process

const (
	SystemIntakeFormStepInitialRequestForm SystemIntakeFormStep = "INITIAL_REQUEST_FORM"
	SystemIntakeFormStepDraftBusinessCase  SystemIntakeFormStep = "DRAFT_BUSINESS_CASE"
	SystemIntakeFormStepFinalBusinessCase  SystemIntakeFormStep = "FINAL_BUSINESS_CASE"
)

func (SystemIntakeFormStep) IsValid

func (e SystemIntakeFormStep) IsValid() bool

func (SystemIntakeFormStep) MarshalGQL

func (e SystemIntakeFormStep) MarshalGQL(w io.Writer)

func (SystemIntakeFormStep) String

func (e SystemIntakeFormStep) String() string

func (*SystemIntakeFormStep) UnmarshalGQL

func (e *SystemIntakeFormStep) UnmarshalGQL(v interface{}) error

type SystemIntakeFundingSource

type SystemIntakeFundingSource struct {
	ID             uuid.UUID   `json:"id"`
	SystemIntakeID uuid.UUID   `json:"systemIntakeId" db:"system_intake_id"`
	Source         null.String `json:"source" db:"source"`
	FundingNumber  null.String `json:"fundingNumber" db:"funding_number"`
	CreatedAt      *time.Time  `db:"created_at"`
}

SystemIntakeFundingSource represents one of multiple funding selections that can be added to a SystemIntake

func (SystemIntakeFundingSource) GetMappingKey

func (s SystemIntakeFundingSource) GetMappingKey() uuid.UUID

func (SystemIntakeFundingSource) GetMappingVal

type SystemIntakeFundingSourceInput

type SystemIntakeFundingSourceInput struct {
	FundingNumber *string `json:"fundingNumber,omitempty"`
	Source        *string `json:"source,omitempty"`
}

Represents the source of funding for a system

type SystemIntakeFundingSourcesInput

type SystemIntakeFundingSourcesInput struct {
	ExistingFunding *bool                             `json:"existingFunding,omitempty"`
	FundingSources  []*SystemIntakeFundingSourceInput `json:"fundingSources"`
}

The input required to specify the funding source(s) for a system intake

type SystemIntakeGRBReviewer

type SystemIntakeGRBReviewer struct {
	BaseStructUser

	SystemIntakeID uuid.UUID               `json:"systemIntakeId" db:"system_intake_id"`
	VotingRole     SIGRBReviewerVotingRole `json:"votingRole" db:"voting_role"`
	GRBRole        SIGRBReviewerRole       `json:"grbRole" db:"grb_role"`
	// contains filtered or unexported fields
}

SystemIntakeGRBReviewer describes

func NewSystemIntakeGRBReviewer

func NewSystemIntakeGRBReviewer(userID uuid.UUID, createdBy uuid.UUID) *SystemIntakeGRBReviewer

func (*SystemIntakeGRBReviewer) CreatedByUserAccount

func (cbr *SystemIntakeGRBReviewer) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (SystemIntakeGRBReviewer) GetMappingKey

func (r SystemIntakeGRBReviewer) GetMappingKey() uuid.UUID

func (SystemIntakeGRBReviewer) GetMappingVal

func (*SystemIntakeGRBReviewer) ModifiedByUserAccount

func (mbr *SystemIntakeGRBReviewer) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

func (*SystemIntakeGRBReviewer) UserAccount

func (b *SystemIntakeGRBReviewer) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type SystemIntakeGRBReviewerComparisonResponse

type SystemIntakeGRBReviewerComparisonResponse struct {
	authentication.UserAccount
	SystemIntakeGRBReviewer
	IsCurrentReviewer bool       `db:"is_current_reviewer"`
	RequestName       string     `db:"project_name"`
	EuaID             string     `db:"username"`
	CommonName        string     `db:"common_name"`
	IntakeCreatedAt   *time.Time `db:"intake_created_at"`
}

func (*SystemIntakeGRBReviewerComparisonResponse) CreatedByUserAccount

func (cbr *SystemIntakeGRBReviewerComparisonResponse) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (*SystemIntakeGRBReviewerComparisonResponse) ModifiedByUserAccount

func (mbr *SystemIntakeGRBReviewerComparisonResponse) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

func (*SystemIntakeGRBReviewerComparisonResponse) UserAccount

func (b *SystemIntakeGRBReviewerComparisonResponse) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type SystemIntakeGRBReviewerRole

type SystemIntakeGRBReviewerRole string
const (
	SystemIntakeGRBReviewerRoleCoChairCio                SystemIntakeGRBReviewerRole = "CO_CHAIR_CIO"
	SystemIntakeGRBReviewerRoleCoChairCfo                SystemIntakeGRBReviewerRole = "CO_CHAIR_CFO"
	SystemIntakeGRBReviewerRoleCoChairHca                SystemIntakeGRBReviewerRole = "CO_CHAIR_HCA"
	SystemIntakeGRBReviewerRoleAca3021Rep                SystemIntakeGRBReviewerRole = "ACA_3021_REP"
	SystemIntakeGRBReviewerRoleCciioRep                  SystemIntakeGRBReviewerRole = "CCIIO_REP"
	SystemIntakeGRBReviewerRoleProgramOperationsBdgChair SystemIntakeGRBReviewerRole = "PROGRAM_OPERATIONS_BDG_CHAIR"
	SystemIntakeGRBReviewerRoleCmcsRep                   SystemIntakeGRBReviewerRole = "CMCS_REP"
	SystemIntakeGRBReviewerRoleFedAdminBdgChair          SystemIntakeGRBReviewerRole = "FED_ADMIN_BDG_CHAIR"
	SystemIntakeGRBReviewerRoleProgramIntegrityBdgChair  SystemIntakeGRBReviewerRole = "PROGRAM_INTEGRITY_BDG_CHAIR"
	SystemIntakeGRBReviewerRoleQioRep                    SystemIntakeGRBReviewerRole = "QIO_REP"
	SystemIntakeGRBReviewerRoleSubjectMatterExpert       SystemIntakeGRBReviewerRole = "SUBJECT_MATTER_EXPERT"
	SystemIntakeGRBReviewerRoleOther                     SystemIntakeGRBReviewerRole = "OTHER"
)

func (SystemIntakeGRBReviewerRole) IsValid

func (e SystemIntakeGRBReviewerRole) IsValid() bool

func (SystemIntakeGRBReviewerRole) MarshalGQL

func (e SystemIntakeGRBReviewerRole) MarshalGQL(w io.Writer)

func (SystemIntakeGRBReviewerRole) String

func (*SystemIntakeGRBReviewerRole) UnmarshalGQL

func (e *SystemIntakeGRBReviewerRole) UnmarshalGQL(v interface{}) error

type SystemIntakeGRBReviewerVotingRole

type SystemIntakeGRBReviewerVotingRole string
const (
	SystemIntakeGRBReviewerVotingRoleVoting    SystemIntakeGRBReviewerVotingRole = "VOTING"
	SystemIntakeGRBReviewerVotingRoleAlternate SystemIntakeGRBReviewerVotingRole = "ALTERNATE"
	SystemIntakeGRBReviewerVotingRoleNonVoting SystemIntakeGRBReviewerVotingRole = "NON_VOTING"
)

func (SystemIntakeGRBReviewerVotingRole) IsValid

func (SystemIntakeGRBReviewerVotingRole) MarshalGQL

func (SystemIntakeGRBReviewerVotingRole) String

func (*SystemIntakeGRBReviewerVotingRole) UnmarshalGQL

func (e *SystemIntakeGRBReviewerVotingRole) UnmarshalGQL(v interface{}) error

type SystemIntakeGovernanceTeam

type SystemIntakeGovernanceTeam struct {
	IsPresent *bool                       `json:"isPresent,omitempty"`
	Teams     []*SystemIntakeCollaborator `json:"teams,omitempty"`
}

Contains multiple system request collaborators, if any

type SystemIntakeGovernanceTeamInput

type SystemIntakeGovernanceTeamInput struct {
	IsPresent *bool                            `json:"isPresent,omitempty"`
	Teams     []*SystemIntakeCollaboratorInput `json:"teams,omitempty"`
}

The input data used to set the list of OIT collaborators for a system request

type SystemIntakeISSOInput

type SystemIntakeISSOInput struct {
	IsPresent *bool   `json:"isPresent,omitempty"`
	Name      *string `json:"name,omitempty"`
}

The input data used to set the ISSO associated with a system request, if any

type SystemIntakeIsso

type SystemIntakeIsso struct {
	IsPresent *bool   `json:"isPresent,omitempty"`
	Name      *string `json:"name,omitempty"`
}

The Information System Security Officer (ISSO) that is assicuated with a system request, if any

type SystemIntakeIssueLCIDInput

type SystemIntakeIssueLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	Lcid                   *string                      `json:"lcid,omitempty"`
	ExpiresAt              time.Time                    `json:"expiresAt"`
	Scope                  HTML                         `json:"scope"`
	NextSteps              HTML                         `json:"nextSteps"`
	TrbFollowUp            SystemIntakeTRBFollowUp      `json:"trbFollowUp"`
	CostBaseline           *string                      `json:"costBaseline,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for setting an intake's decision to issuing an LCID in IT Gov v2

type SystemIntakeLCIDExpirationChange

type SystemIntakeLCIDExpirationChange struct {
	PreviousDate         time.Time `json:"previousDate"`
	NewDate              time.Time `json:"newDate"`
	PreviousScope        *HTML     `json:"previousScope,omitempty"`
	NewScope             *HTML     `json:"newScope,omitempty"`
	PreviousNextSteps    *HTML     `json:"previousNextSteps,omitempty"`
	NewNextSteps         *HTML     `json:"newNextSteps,omitempty"`
	PreviousCostBaseline *string   `json:"previousCostBaseline,omitempty"`
	NewCostBaseline      *string   `json:"newCostBaseline,omitempty"`
}

Contains the data about a change to the expiration date of a system request's lifecycle ID

type SystemIntakeLCIDStatus

type SystemIntakeLCIDStatus string

SystemIntakeLCIDStatus represents the possible statuses that an issued LCID can be in

const (
	SystemIntakeLCIDStatusIssued  SystemIntakeLCIDStatus = "ISSUED"
	SystemIntakeLCIDStatusExpired SystemIntakeLCIDStatus = "EXPIRED"
	SystemIntakeLCIDStatusRetired SystemIntakeLCIDStatus = "RETIRED"
)

possible values of SystemIntakeLCIDStatus - corresponds to SystemIntakeLCIDStatus enum in GraphQL schema

type SystemIntakeMeetingState

type SystemIntakeMeetingState string

SystemIntakeMeetingState is the state for any meeting for a system intake

const (
	SIMSScheduled    SystemIntakeMeetingState = "SCHEDULED"
	SIMSNotScheduled SystemIntakeMeetingState = "NOT_SCHEDULED"
)

These are the options for SystemIntakeMeetingState

type SystemIntakeNotITGovReqInput

type SystemIntakeNotITGovReqInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	Reason                 *HTML                        `json:"reason,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for creating a Not an IT Governance Request Action in Admin Actions v2

type SystemIntakeNote

type SystemIntakeNote struct {
	ID             uuid.UUID   `json:"id"`
	SystemIntakeID uuid.UUID   `json:"systemIntakeId" db:"system_intake"`
	CreatedAt      *time.Time  `json:"createdAt" db:"created_at"`
	AuthorEUAID    string      `json:"authorId" db:"eua_user_id"`
	AuthorName     null.String `json:"authorName" db:"author_name"`
	Content        *HTML       `json:"content" db:"content"`
	ModifiedAt     *time.Time  `json:"modifiedAt" db:"modified_at"`
	ModifiedBy     *string     `json:"modifiedBy" db:"modified_by"`
	IsArchived     bool        `json:"isArchived" db:"is_archived"`
}

SystemIntakeNote holds commentary information submitted by the review team about a SystemIntake

func (SystemIntakeNote) GetMappingKey

func (n SystemIntakeNote) GetMappingKey() uuid.UUID

func (SystemIntakeNote) GetMappingVal

func (n SystemIntakeNote) GetMappingVal() *SystemIntakeNote

type SystemIntakeNoteAuthor

type SystemIntakeNoteAuthor struct {
	Eua  string `json:"eua"`
	Name string `json:"name"`
}

The author of a note added to a system request

type SystemIntakeProductManager

type SystemIntakeProductManager struct {
	Component *string `json:"component,omitempty"`
	Name      *string `json:"name,omitempty"`
}

The product manager associated with a system

type SystemIntakeProductManagerInput

type SystemIntakeProductManagerInput struct {
	Name      string `json:"name"`
	Component string `json:"component"`
}

The input data used to set the CMS product manager/lead of a system

type SystemIntakeProgressToNewStepsInput

type SystemIntakeProgressToNewStepsInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	NewStep                SystemIntakeStepToProgressTo `json:"newStep"`
	MeetingDate            *time.Time                   `json:"meetingDate,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	Feedback               *HTML                        `json:"feedback,omitempty"`
	GrbRecommendations     *HTML                        `json:"grbRecommendations,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for submitting a Progress to New Step action in IT Gov v2

type SystemIntakeRejectIntakeInput

type SystemIntakeRejectIntakeInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	Reason                 HTML                         `json:"reason"`
	NextSteps              HTML                         `json:"nextSteps"`
	TrbFollowUp            SystemIntakeTRBFollowUp      `json:"trbFollowUp"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for setting an intake's decision to Not Approved by GRB in IT Gov v2

type SystemIntakeReopenRequestInput

type SystemIntakeReopenRequestInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	Reason                 *HTML                        `json:"reason,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for creating a Reopen Request Action in Admin Actions v2

type SystemIntakeRequestEditsInput

type SystemIntakeRequestEditsInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	IntakeFormStep         SystemIntakeFormStep         `json:"intakeFormStep"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	EmailFeedback          HTML                         `json:"emailFeedback"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for creating a Request Edits Action in Admin Actions v2

type SystemIntakeRequestType

type SystemIntakeRequestType string

SystemIntakeRequestType represents the type of a system intake

const (
	// SystemIntakeRequestTypeNEW captures enum value of "NEW"
	SystemIntakeRequestTypeNEW SystemIntakeRequestType = "NEW"
	// SystemIntakeRequestTypeMAJORCHANGES captures enum value of "MAJOR_CHANGES"
	SystemIntakeRequestTypeMAJORCHANGES SystemIntakeRequestType = "MAJOR_CHANGES"
	// SystemIntakeRequestTypeRECOMPETE captures enum value of "RECOMPETE"
	SystemIntakeRequestTypeRECOMPETE SystemIntakeRequestType = "RECOMPETE"
	// SystemIntakeRequestTypeSHUTDOWN captures enum value of "SHUTDOWN"
	SystemIntakeRequestTypeSHUTDOWN SystemIntakeRequestType = "SHUTDOWN"
)

type SystemIntakeRequester

type SystemIntakeRequester struct {
	Component *string `json:"component,omitempty"`
	Email     *string `json:"email,omitempty"`
	Name      string  `json:"name"`
}

The contact who made an IT governance request for a system

type SystemIntakeRequesterInput

type SystemIntakeRequesterInput struct {
	Name string `json:"name"`
}

The input data used to set the requester of a system request

type SystemIntakeRequesterWithComponentInput

type SystemIntakeRequesterWithComponentInput struct {
	Name      string `json:"name"`
	Component string `json:"component"`
}

The input data used to set the requester for a system request along with the requester's business component

type SystemIntakeRetireLCIDInput

type SystemIntakeRetireLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	RetiresAt              time.Time                    `json:"retiresAt"`
	Reason                 *HTML                        `json:"reason,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for retiring an intake's LCID in IT Gov v2

type SystemIntakeSoftwareAcquisitionMethod

type SystemIntakeSoftwareAcquisitionMethod string
const (
	SystemIntakeSoftwareAcquisitionContractorFurnished SystemIntakeSoftwareAcquisitionMethod = "CONTRACTOR_FURNISHED"
	SystemIntakeSoftwareAcquisitionFedFurnished        SystemIntakeSoftwareAcquisitionMethod = "FED_FURNISHED"
	SystemIntakeSoftwareAcquisitionELAOrInternal       SystemIntakeSoftwareAcquisitionMethod = "ELA_OR_INTERNAL"
	SystemIntakeSoftwareAcquisitionNotYetDetermined    SystemIntakeSoftwareAcquisitionMethod = "NOT_YET_DETERMINED"
	SystemIntakeSoftwareAcquisitionOther               SystemIntakeSoftwareAcquisitionMethod = "OTHER"
)

type SystemIntakeSoftwareAcquisitionMethods

type SystemIntakeSoftwareAcquisitionMethods string

SystemIntakeSoftwareAcquisitionMethods represents the different methods requesters can select in a system intake

const (
	SystemIntakeSoftwareAcquisitionMethodsContractorFurnished SystemIntakeSoftwareAcquisitionMethods = "CONTRACTOR_FURNISHED"
	SystemIntakeSoftwareAcquisitionMethodsFedFurnished        SystemIntakeSoftwareAcquisitionMethods = "FED_FURNISHED"
	SystemIntakeSoftwareAcquisitionMethodsElaOrInternal       SystemIntakeSoftwareAcquisitionMethods = "ELA_OR_INTERNAL"
	SystemIntakeSoftwareAcquisitionMethodsNotYetDetermined    SystemIntakeSoftwareAcquisitionMethods = "NOT_YET_DETERMINED"
	SystemIntakeSoftwareAcquisitionMethodsOther               SystemIntakeSoftwareAcquisitionMethods = "OTHER"
)

func (SystemIntakeSoftwareAcquisitionMethods) IsValid

func (SystemIntakeSoftwareAcquisitionMethods) MarshalGQL

func (SystemIntakeSoftwareAcquisitionMethods) String

func (*SystemIntakeSoftwareAcquisitionMethods) UnmarshalGQL

func (e *SystemIntakeSoftwareAcquisitionMethods) UnmarshalGQL(v interface{}) error

type SystemIntakeState

type SystemIntakeState string

SystemIntakeState represents whether the intake is open or closed

const (
	// SystemIntakeStateOpen captures enum value "OPEN"
	SystemIntakeStateOpen SystemIntakeState = "OPEN"
	// SystemIntakeStateClosed captures enum value "CLOSED"
	SystemIntakeStateClosed SystemIntakeState = "CLOSED"
)

type SystemIntakeStatusAdmin

type SystemIntakeStatusAdmin string

SystemIntakeStatusAdmin represents the types of statuses that a user can see in the admin view of a system intake request.

const (
	SISAInitialRequestFormInProgress SystemIntakeStatusAdmin = "INITIAL_REQUEST_FORM_IN_PROGRESS"
	SISAInitialRequestFormSubmitted  SystemIntakeStatusAdmin = "INITIAL_REQUEST_FORM_SUBMITTED"
	SISADraftBusinessCaseInProgress  SystemIntakeStatusAdmin = "DRAFT_BUSINESS_CASE_IN_PROGRESS"
	SISADraftBusinessCaseSubmitted   SystemIntakeStatusAdmin = "DRAFT_BUSINESS_CASE_SUBMITTED"
	SISAGrtMeetingReady              SystemIntakeStatusAdmin = "GRT_MEETING_READY"
	SISAGrtMeetingComplete           SystemIntakeStatusAdmin = "GRT_MEETING_COMPLETE"
	SISAGrbMeetingReady              SystemIntakeStatusAdmin = "GRB_MEETING_READY"
	SISAGrbMeetingComplete           SystemIntakeStatusAdmin = "GRB_MEETING_COMPLETE"
	SISAFinalBusinessCaseInProgress  SystemIntakeStatusAdmin = "FINAL_BUSINESS_CASE_IN_PROGRESS"
	SISAFinalBusinessCaseSubmitted   SystemIntakeStatusAdmin = "FINAL_BUSINESS_CASE_SUBMITTED"
	SISALcidIssued                   SystemIntakeStatusAdmin = "LCID_ISSUED"
	SISALcidExpired                  SystemIntakeStatusAdmin = "LCID_EXPIRED"
	SISALcidRetired                  SystemIntakeStatusAdmin = "LCID_RETIRED"
	SISANotGovernance                SystemIntakeStatusAdmin = "NOT_GOVERNANCE"
	SISANotApproved                  SystemIntakeStatusAdmin = "NOT_APPROVED"
	SISAClosed                       SystemIntakeStatusAdmin = "CLOSED"
)

These are the options for SystemIntakeStatusAdmin

type SystemIntakeStatusRequester

type SystemIntakeStatusRequester string

SystemIntakeStatusRequester represents the (calculated) statuses that a requester view of a system intake request can show

const (
	SISRInitialRequestFormNew            SystemIntakeStatusRequester = "INITIAL_REQUEST_FORM_NEW"
	SISRInitialRequestFormInProgress     SystemIntakeStatusRequester = "INITIAL_REQUEST_FORM_IN_PROGRESS"
	SISRInitialRequestFormSubmitted      SystemIntakeStatusRequester = "INITIAL_REQUEST_FORM_SUBMITTED"
	SISRInitialRequestFormEditsRequested SystemIntakeStatusRequester = "INITIAL_REQUEST_FORM_EDITS_REQUESTED"
	SISRDraftBusinessCaseInProgress      SystemIntakeStatusRequester = "DRAFT_BUSINESS_CASE_IN_PROGRESS"
	SISRDraftBusinessCaseSubmitted       SystemIntakeStatusRequester = "DRAFT_BUSINESS_CASE_SUBMITTED"
	SISRDraftBusinessCaseEditsRequested  SystemIntakeStatusRequester = "DRAFT_BUSINESS_CASE_EDITS_REQUESTED"
	SISRGrtMeetingReady                  SystemIntakeStatusRequester = "GRT_MEETING_READY"
	SISRGrtMeetingAwaitingDecision       SystemIntakeStatusRequester = "GRT_MEETING_AWAITING_DECISION"
	SISRFinalBusinessCaseInProgress      SystemIntakeStatusRequester = "FINAL_BUSINESS_CASE_IN_PROGRESS"
	SISRFinalBusinessCaseSubmitted       SystemIntakeStatusRequester = "FINAL_BUSINESS_CASE_SUBMITTED"
	SISRFinalBusinessCaseEditsRequested  SystemIntakeStatusRequester = "FINAL_BUSINESS_CASE_EDITS_REQUESTED"
	SISRGrbMeetingReady                  SystemIntakeStatusRequester = "GRB_MEETING_READY"
	SISRGrbMeetingAwaitingDecision       SystemIntakeStatusRequester = "GRB_MEETING_AWAITING_DECISION"
	SISRLcidIssued                       SystemIntakeStatusRequester = "LCID_ISSUED"
	SISRLcidExpired                      SystemIntakeStatusRequester = "LCID_EXPIRED"
	SISRLcidRetired                      SystemIntakeStatusRequester = "LCID_RETIRED"
	SISRNotGovernance                    SystemIntakeStatusRequester = "NOT_GOVERNANCE"
	SISRNotApproved                      SystemIntakeStatusRequester = "NOT_APPROVED"
	SISRClosed                           SystemIntakeStatusRequester = "CLOSED"
)

These are the options for SystemIntakeStatusRequester

type SystemIntakeStep

type SystemIntakeStep string

SystemIntakeStep represents the current step in the intake process

const (
	// SystemIntakeStepINITIALFORM captures enum value "INITIAL_REQUEST_FORM"
	SystemIntakeStepINITIALFORM SystemIntakeStep = "INITIAL_REQUEST_FORM"
	// SystemIntakeStepDRAFTBIZCASE captures enum value "DRAFT_BUSINESS_CASE"
	SystemIntakeStepDRAFTBIZCASE SystemIntakeStep = "DRAFT_BUSINESS_CASE"
	// SystemIntakeStepGRTMEETING captures enum value "GRT_MEETING"
	SystemIntakeStepGRTMEETING SystemIntakeStep = "GRT_MEETING"
	// SystemIntakeStepFINALBIZCASE captures enum value "FINAL_BUSINESS_CASE"
	SystemIntakeStepFINALBIZCASE SystemIntakeStep = "FINAL_BUSINESS_CASE"
	// SystemIntakeStepGRBMEETING captures enum value "GRB_MEETING"
	SystemIntakeStepGRBMEETING SystemIntakeStep = "GRB_MEETING"
	// SystemIntakeStepDECISION captures enum value "DECISION_AND_NEXT_STEPS"
	SystemIntakeStepDECISION SystemIntakeStep = "DECISION_AND_NEXT_STEPS"
)

type SystemIntakeStepToProgressTo

type SystemIntakeStepToProgressTo string

Steps in the system intake process that a Progress to New Step action can progress to

const (
	SystemIntakeStepToProgressToDraftBusinessCase SystemIntakeStepToProgressTo = "DRAFT_BUSINESS_CASE"
	SystemIntakeStepToProgressToGrtMeeting        SystemIntakeStepToProgressTo = "GRT_MEETING"
	SystemIntakeStepToProgressToGrbMeeting        SystemIntakeStepToProgressTo = "GRB_MEETING"
	SystemIntakeStepToProgressToFinalBusinessCase SystemIntakeStepToProgressTo = "FINAL_BUSINESS_CASE"
)

func (SystemIntakeStepToProgressTo) IsValid

func (e SystemIntakeStepToProgressTo) IsValid() bool

func (SystemIntakeStepToProgressTo) MarshalGQL

func (e SystemIntakeStepToProgressTo) MarshalGQL(w io.Writer)

func (SystemIntakeStepToProgressTo) String

func (*SystemIntakeStepToProgressTo) UnmarshalGQL

func (e *SystemIntakeStepToProgressTo) UnmarshalGQL(v interface{}) error

type SystemIntakeSystem

type SystemIntakeSystem struct {
	BaseStructUser
	SystemIntakeID uuid.UUID `db:"system_intake_id"`
	SystemID       string    `db:"system_id"`
}

SystemIntakeSystem is the insertion type for linking a system intake to system(s)

func NewSystemIntakeSystem

func NewSystemIntakeSystem(createdBy uuid.UUID) SystemIntakeSystem

NewSystemIntakeSystem creates a SystemIntakeSystemLink

func (*SystemIntakeSystem) CreatedByUserAccount

func (cbr *SystemIntakeSystem) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (SystemIntakeSystem) GetMappingKey

func (s SystemIntakeSystem) GetMappingKey() uuid.UUID

func (SystemIntakeSystem) GetMappingVal

func (s SystemIntakeSystem) GetMappingVal() *SystemIntakeSystem

func (*SystemIntakeSystem) ModifiedByUserAccount

func (mbr *SystemIntakeSystem) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

type SystemIntakeTRBFollowUp

type SystemIntakeTRBFollowUp string

SystemIntakeTRBFollowUp represents whether a requester is recommended to follow up by consulting the TRB

const (
	TRBFRStronglyRecommended       SystemIntakeTRBFollowUp = "STRONGLY_RECOMMENDED"
	TRBFRRecommendedButNotCritical SystemIntakeTRBFollowUp = "RECOMMENDED_BUT_NOT_CRITICAL"
	TRBFRNotRecommended            SystemIntakeTRBFollowUp = "NOT_RECOMMENDED"
)

These are the options for SystemIntakeTRBFollowUp

type SystemIntakeUnretireLCIDInput

type SystemIntakeUnretireLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for "unretiring" (i.e. removing retirement date) an LCID in IT Gov v2

type SystemIntakeUpdateLCIDInput

type SystemIntakeUpdateLCIDInput struct {
	SystemIntakeID         uuid.UUID                    `json:"systemIntakeID"`
	ExpiresAt              *time.Time                   `json:"expiresAt,omitempty"`
	Scope                  *HTML                        `json:"scope,omitempty"`
	NextSteps              *HTML                        `json:"nextSteps,omitempty"`
	CostBaseline           *string                      `json:"costBaseline,omitempty"`
	Reason                 *HTML                        `json:"reason,omitempty"`
	AdditionalInfo         *HTML                        `json:"additionalInfo,omitempty"`
	NotificationRecipients *EmailNotificationRecipients `json:"notificationRecipients,omitempty"`
	AdminNote              *HTML                        `json:"adminNote,omitempty"`
}

Input for updating an intake's LCID in IT Gov v2

type SystemIntakes

type SystemIntakes []SystemIntake

SystemIntakes is a list of System Intakes

type SystemIntakesByCedarSystemIDsRequest

type SystemIntakesByCedarSystemIDsRequest struct {
	CedarSystemID string
	State         SystemIntakeState
}

type SystemIntakesByCedarSystemIDsResponse

type SystemIntakesByCedarSystemIDsResponse struct {
	CedarSystemID string `db:"system_id"`
	SystemIntake
}

func (SystemIntakesByCedarSystemIDsResponse) GetMappingKey

func (SystemIntakesByCedarSystemIDsResponse) GetMappingVal

type SystemMaintainerInformation

type SystemMaintainerInformation struct {
	AdHocAgileDeploymentFrequency         zero.String   `json:"adHocAgileDeploymentFrequency,omitempty"`
	AgileUsed                             bool          `json:"agileUsed"`
	AuthoritativeDatasource               zero.String   `json:"authoritativeDatasource,omitempty"`
	BusinessArtifactsOnDemand             bool          `json:"businessArtifactsOnDemand"`
	DataAtRestEncryptionKeyManagement     zero.String   `json:"dataAtRestEncryptionKeyManagement,omitempty"`
	DeploymentFrequency                   zero.String   `json:"deploymentFrequency"`
	DevCompletionPercent                  zero.String   `json:"devCompletionPercent"`
	DevWorkDescription                    zero.String   `json:"devWorkDescription"`
	EcapParticipation                     bool          `json:"ecapParticipation"`
	FrontendAccessType                    zero.String   `json:"frontendAccessType"`
	HardCodedIPAddress                    bool          `json:"hardCodedIpAddress"`
	IP6EnabledAssetPercent                zero.String   `json:"ip6EnabledAssetPercent"`
	IP6TransitionPlan                     zero.String   `json:"ip6TransitionPlan"`
	IPEnabledAssetCount                   int           `json:"ipEnabledAssetCount"`
	LegalHoldCaseName                     zero.String   `json:"legalHoldCaseName,omitempty"`
	LocallyStoredUserInformation          bool          `json:"locallyStoredUserInformation,omitempty"`
	MajorRefreshDate                      zero.Time     `json:"majorRefreshDate"`
	MultifactorAuthenticationMethod       []zero.String `json:"multifactorAuthenticationMethod"`
	MultifactorAuthenticationMethodOther  zero.String   `json:"multifactorAuthenticationMethodOther,omitempty"`
	NetAccessibility                      zero.String   `json:"netAccessibility"`
	NetworkTrafficEncryptionKeyManagement zero.String   `json:"networkTrafficEncryptionKeyManagement,omitempty"`
	NoMajorRefresh                        bool          `json:"noMajorRefresh,omitempty"`
	NoPersistentRecordsFlag               bool          `json:"noPersistentRecordsFlag,omitempty"`
	NoPlannedMajorRefresh                 bool          `json:"noPlannedMajorRefresh,omitempty"`
	OmDocumentationOnDemand               bool          `json:"omDocumentationOnDemand"`
	PlansToRetireReplace                  zero.String   `json:"plansToRetireReplace"`
	QuarterToRetireReplace                zero.String   `json:"quarterToRetireReplace"`
	RecordsManagementBucket               []zero.String `json:"recordsManagementBucket"`
	RecordsManagementDisposalLocation     zero.String   `json:"recordsManagementDisposalLocation,omitempty"`
	RecordsManagementDisposalPlan         zero.String   `json:"recordsManagementDisposalPlan,omitempty"`
	RecordsUnderLegalHold                 bool          `json:"recordsUnderLegalHold,omitempty"`
	SourceCodeOnDemand                    bool          `json:"sourceCodeOnDemand"`
	SystemCustomization                   zero.String   `json:"systemCustomization"`
	SystemDesignOnDemand                  bool          `json:"systemDesignOnDemand"`
	SystemDataLocation                    []zero.String `json:"systemDataLocation"`
	SystemDataLocationNotes               zero.String   `json:"systemDataLocationNotes,omitempty"`
	SystemProductionDate                  zero.Time     `json:"systemProductionDate"`
	SystemRequirementsOnDemand            bool          `json:"systemRequirementsOnDemand"`
	TestPlanOnDemand                      bool          `json:"testPlanOnDemand"`
	TestReportsOnDemand                   bool          `json:"testReportsOnDemand"`
	TestScriptsOnDemand                   bool          `json:"testScriptsOnDemand"`
	YearToRetireReplace                   zero.String   `json:"yearToRetireReplace"`
}

SystemMaintainerInformation contains information about the system maintainer of a CEDAR system

type TRBAdminNote

type TRBAdminNote struct {
	BaseStruct
	TRBRequestID uuid.UUID            `json:"trbRequestId" db:"trb_request_id"`
	Category     TRBAdminNoteCategory `json:"category" db:"category"`
	NoteText     HTML                 `json:"noteText" db:"note_text"`
	IsArchived   bool                 `json:"isArchived" db:"is_archived"`

	// Initial Request Form
	AppliesToBasicRequestDetails null.Bool `json:"appliesToBasicRequestDetails" db:"applies_to_basic_request_details"`
	AppliesToSubjectAreas        null.Bool `json:"appliesToSubjectAreas" db:"applies_to_subject_areas"`
	AppliesToAttendees           null.Bool `json:"appliesToAttendees" db:"applies_to_attendees"`

	// Guidance Letter
	AppliesToMeetingSummary null.Bool `json:"appliesToMeetingSummary" db:"applies_to_meeting_summary"`
	AppliesToNextSteps      null.Bool `json:"appliesToNextSteps" db:"applies_to_next_steps"`
}

TRBAdminNote represents the data for a note attached to a TRB request by an admin

func (TRBAdminNote) GetMappingKey

func (n TRBAdminNote) GetMappingKey() uuid.UUID

func (TRBAdminNote) GetMappingVal

func (n TRBAdminNote) GetMappingVal() *TRBAdminNote

type TRBAdminNoteCategory

type TRBAdminNoteCategory string

TRBAdminNoteCategory is an enumeration of the possible categories of a TRBAdminNote

const (
	TRBAdminNoteCategoryGeneralRequest      TRBAdminNoteCategory = "GENERAL_REQUEST"
	TRBAdminNoteCategoryInitialRequestForm  TRBAdminNoteCategory = "INITIAL_REQUEST_FORM"
	TRBAdminNoteCategorySupportingDocuments TRBAdminNoteCategory = "SUPPORTING_DOCUMENTS"
	TRBAdminNoteCategoryConsultSession      TRBAdminNoteCategory = "CONSULT_SESSION"
	TRBAdminNoteCategoryGuidanceLetter      TRBAdminNoteCategory = "GUIDANCE_LETTER"
)

These are the possible categories for a TRB admin note

type TRBAdminNoteCategorySpecificData

type TRBAdminNoteCategorySpecificData interface {
	IsTRBAdminNoteCategorySpecificData()
}

type TRBAdminNoteConsultSessionCategoryData

type TRBAdminNoteConsultSessionCategoryData struct {
	// Placeholder field so this type is non-empty, always null
	PlaceholderField *bool `json:"placeholderField,omitempty"`
}

Data specific to admin notes in the Consult Session category This type doesn't contain any actual data

func (TRBAdminNoteConsultSessionCategoryData) IsTRBAdminNoteCategorySpecificData

func (TRBAdminNoteConsultSessionCategoryData) IsTRBAdminNoteCategorySpecificData()

type TRBAdminNoteGeneralRequestCategoryData

type TRBAdminNoteGeneralRequestCategoryData struct {
	// Placeholder field so this type is non-empty, always null
	PlaceholderField *bool `json:"placeholderField,omitempty"`
}

Data specific to admin notes in the General Request category This type doesn't contain any actual data

func (TRBAdminNoteGeneralRequestCategoryData) IsTRBAdminNoteCategorySpecificData

func (TRBAdminNoteGeneralRequestCategoryData) IsTRBAdminNoteCategorySpecificData()

type TRBAdminNoteGuidanceLetterCategoryData

type TRBAdminNoteGuidanceLetterCategoryData struct {
	AppliesToMeetingSummary bool                               `json:"appliesToMeetingSummary"`
	AppliesToNextSteps      bool                               `json:"appliesToNextSteps"`
	Insights                []*TRBGuidanceLetterRecommendation `json:"insights"`
}

Data specific to admin notes in the Guidance Letter category The "recommendations" property _will_ return deleted recommendations so that UI can reference the recommendation title

func (TRBAdminNoteGuidanceLetterCategoryData) IsTRBAdminNoteCategorySpecificData

func (TRBAdminNoteGuidanceLetterCategoryData) IsTRBAdminNoteCategorySpecificData()

type TRBAdminNoteInitialRequestFormCategoryData

type TRBAdminNoteInitialRequestFormCategoryData struct {
	AppliesToBasicRequestDetails bool `json:"appliesToBasicRequestDetails"`
	AppliesToSubjectAreas        bool `json:"appliesToSubjectAreas"`
	AppliesToAttendees           bool `json:"appliesToAttendees"`
}

Data specific to admin notes in the Initial Request Form category

func (TRBAdminNoteInitialRequestFormCategoryData) IsTRBAdminNoteCategorySpecificData

func (TRBAdminNoteInitialRequestFormCategoryData) IsTRBAdminNoteCategorySpecificData()

type TRBAdminNoteSupportingDocumentsCategoryData

type TRBAdminNoteSupportingDocumentsCategoryData struct {
	Documents []*TRBRequestDocument `json:"documents"`
}

Data specific to admin notes in the Supporting Documents category The "documents" property _will_ return deleted documents so that UI can reference the document name

func (TRBAdminNoteSupportingDocumentsCategoryData) IsTRBAdminNoteCategorySpecificData

func (TRBAdminNoteSupportingDocumentsCategoryData) IsTRBAdminNoteCategorySpecificData()
type TRBAdminNoteTRBGuidanceLetterRecommendationLink struct {
	BaseStruct
	TRBRequestID                      uuid.UUID `json:"trbRequestId" db:"trb_request_id"`
	TRBAdminNoteID                    uuid.UUID `json:"trbAdminNoteId" db:"trb_admin_note_id"`
	TRBGuidanceLetterRecommendationID uuid.UUID `json:"trbGuidanceLetterRecommendationId" db:"trb_guidance_letter_recommendation_id"`
}

TRBAdminNoteTRBGuidanceLetterRecommendationLink represents an association between a TRB admin note (in the Guidance Letter category) and a TRB guidance letter recommendation

type TRBAdminNoteTRBRequestDocumentLink struct {
	BaseStruct
	TRBRequestID         uuid.UUID `json:"trbRequestId" db:"trb_request_id"`
	TRBAdminNoteID       uuid.UUID `json:"trbAdminNoteId" db:"trb_admin_note_id"`
	TRBRequestDocumentID uuid.UUID `json:"trbRequestDocumentId" db:"trb_request_document_id"`
}

TRBAdminNoteTRBRequestDocumentLink represents an association between a TRB admin note (in the Supporting Documents category) and a TRB document

type TRBAttendConsultStatus

type TRBAttendConsultStatus string

TRBAttendConsultStatus represents the types of TRBAttendConsultStatus types

const (
	TRBAttendConsultStatusCannotStartYet  TRBAttendConsultStatus = "CANNOT_START_YET"
	TRBAttendConsultStatusReadyToSchedule TRBAttendConsultStatus = "READY_TO_SCHEDULE"
	TRBAttendConsultStatusScheduled       TRBAttendConsultStatus = "SCHEDULED"
	TRBAttendConsultStatusCompleted       TRBAttendConsultStatus = "COMPLETED"
)

These are the options for TRBAttendConsultStatus

type TRBAttendeeByTRBAndEUAIDRequest

type TRBAttendeeByTRBAndEUAIDRequest struct {
	EUAUserID    string
	TRBRequestID uuid.UUID
}

TRBAttendeeByTRBAndEUAIDRequest is used by the dataloaders package to help batch attendee requests by EUA+TRB IDs

type TRBCollabGroupOption

type TRBCollabGroupOption string

TRBCollabGroupOption is an enumeration of the possible OIT collaboration groups that can be selected for a TRB request form

const (
	TRBCollabGroupOptionSecurity               TRBCollabGroupOption = "SECURITY"
	TRBCollabGroupOptionEnterpriseArchitecture TRBCollabGroupOption = "ENTERPRISE_ARCHITECTURE"
	TRBCollabGroupOptionCloud                  TRBCollabGroupOption = "CLOUD"
	TRBCollabGroupOptionPrivacyAdvisor         TRBCollabGroupOption = "PRIVACY_ADVISOR"
	TRBCollabGroupOptionGovernanceReviewBoard  TRBCollabGroupOption = "GOVERNANCE_REVIEW_BOARD"
	TRBCollabGroupOptionOther                  TRBCollabGroupOption = "OTHER"
)

These are the individual options for responses to the "Select any other OIT groups that you have met with or collaborated with" on the TRB request form

type TRBConsultPrepStatus

type TRBConsultPrepStatus string

TRBConsultPrepStatus represents the types of TRBConsultPrepStatus types

const (
	TRBConsultPrepStatusCannotStartYet TRBConsultPrepStatus = "CANNOT_START_YET"
	TRBConsultPrepStatusReadyToStart   TRBConsultPrepStatus = "READY_TO_START"
	TRBConsultPrepStatusCompleted      TRBConsultPrepStatus = "COMPLETED"
)

These are the options for TRBConsultPrepStatus

type TRBDocumentCommonType

type TRBDocumentCommonType string

TRBDocumentCommonType represents the document type, including an "OTHER" option for user-specified types

type TRBFeedbackAction

type TRBFeedbackAction string

TRBFeedbackAction is an enumertion of actions that can be taken by a TRB admin during the feedback step

const (
	TRBFeedbackActionRequestEdits    TRBFeedbackAction = "REQUEST_EDITS"
	TRBFeedbackActionReadyForConsult TRBFeedbackAction = "READY_FOR_CONSULT"
)

These are the options for TRBFeedbackAction

type TRBFeedbackStatus

type TRBFeedbackStatus string

TRBFeedbackStatus represents the types of TRBFeedbackStatus types

const (
	TRBFeedbackStatusCannotStartYet TRBFeedbackStatus = "CANNOT_START_YET"
	TRBFeedbackStatusInReview       TRBFeedbackStatus = "IN_REVIEW"
	TRBFeedbackStatusEditsRequested TRBFeedbackStatus = "EDITS_REQUESTED"
	TRBFeedbackStatusCompleted      TRBFeedbackStatus = "COMPLETED"
)

These are the options for TRBFeedbackStatus

type TRBFormStatus

type TRBFormStatus string

TRBFormStatus is an enumeration of the possible statuses of a TRBRequestForm

const (
	TRBFormStatusReadyToStart TRBFormStatus = "READY_TO_START"
	TRBFormStatusInProgress   TRBFormStatus = "IN_PROGRESS"
	TRBFormStatusCompleted    TRBFormStatus = "COMPLETED"
)

These are the possible statuses for a TRB request form

type TRBFundingSource

type TRBFundingSource struct {
	BaseStruct
	TRBRequestID  uuid.UUID `json:"trbRequestId" db:"trb_request_id"`
	Source        string    `json:"source" db:"source"`
	FundingNumber string    `json:"fundingNumber" db:"funding_number"`
}

TRBFundingSource represents one of multiple funding selections that can be added to a TRBRequestForm

func (TRBFundingSource) GetMappingKey

func (f TRBFundingSource) GetMappingKey() uuid.UUID

func (TRBFundingSource) GetMappingVal

func (f TRBFundingSource) GetMappingVal() *TRBFundingSource

type TRBGuidanceLetter

type TRBGuidanceLetter struct {
	BaseStruct
	TRBRequestID          uuid.UUID               `json:"trbRequestId" db:"trb_request_id"`
	Status                TRBGuidanceLetterStatus `json:"status" db:"status"`
	MeetingSummary        *HTML                   `json:"meetingSummary" db:"meeting_summary"`
	NextSteps             *HTML                   `json:"nextSteps" db:"next_steps"`
	IsFollowupRecommended *bool                   `json:"isFollowupRecommended" db:"is_followup_recommended"`
	DateSent              *time.Time              `json:"dateSent" db:"date_sent"`

	// not necessarily a firm date; can be something like "In 6 months or when development is complete"
	FollowupPoint *string `json:"followupPoint" db:"followup_point"`
}

TRBGuidanceLetter represents the data for a TRB guidance letter

func (TRBGuidanceLetter) GetMappingKey

func (a TRBGuidanceLetter) GetMappingKey() uuid.UUID

func (TRBGuidanceLetter) GetMappingVal

func (a TRBGuidanceLetter) GetMappingVal() *TRBGuidanceLetter

type TRBGuidanceLetterRecommendation

type TRBGuidanceLetterRecommendation struct {
	BaseStruct
	TRBRequestID     uuid.UUID                               `json:"trbRequestId" db:"trb_request_id"`
	Title            string                                  `json:"title" db:"title"`
	Recommendation   HTML                                    `json:"recommendation" db:"recommendation"`
	Links            pq.StringArray                          `json:"links" db:"links"`
	PositionInLetter null.Int                                `json:"positionInLetter" db:"position_in_letter"` // 0-based indexing
	DeletedAt        *time.Time                              `json:"deletedAt" db:"deleted_at"`
	Category         TRBGuidanceLetterRecommendationCategory `json:"category" db:"category"`
}

TRBGuidanceLetterRecommendation represents the data for a TRB guidance letter recommendation

type TRBGuidanceLetterRecommendationCategory

type TRBGuidanceLetterRecommendationCategory string

TRBGuidanceLetterRecommendationCategory implemented here instead of in gen files see Note [gql enums]

const (
	TRBGuidanceLetterRecommendationCategoryRequirement    TRBGuidanceLetterRecommendationCategory = "REQUIREMENT"
	TRBGuidanceLetterRecommendationCategoryRecommendation TRBGuidanceLetterRecommendationCategory = "RECOMMENDATION"
	TRBGuidanceLetterRecommendationCategoryConsideration  TRBGuidanceLetterRecommendationCategory = "CONSIDERATION"
	TRBGuidanceLetterRecommendationCategoryUncategorized  TRBGuidanceLetterRecommendationCategory = "UNCATEGORIZED"
)

func (TRBGuidanceLetterRecommendationCategory) String

type TRBGuidanceLetterStatus

type TRBGuidanceLetterStatus string

TRBGuidanceLetterStatus is an enumeration of the possible statuses of a TRBGuidanceLetter

const (
	TRBGuidanceLetterStatusCannotStartYet TRBGuidanceLetterStatus = "CANNOT_START_YET"
	TRBGuidanceLetterStatusReadyToStart   TRBGuidanceLetterStatus = "READY_TO_START"
	TRBGuidanceLetterStatusInProgress     TRBGuidanceLetterStatus = "IN_PROGRESS"
	TRBGuidanceLetterStatusReadyForReview TRBGuidanceLetterStatus = "READY_FOR_REVIEW"
	TRBGuidanceLetterStatusCompleted      TRBGuidanceLetterStatus = "COMPLETED"
)

These are the possible statuses for a TRB guidance letter

type TRBGuidanceLetterStatusTaskList

type TRBGuidanceLetterStatusTaskList string

TRBGuidanceLetterStatusTaskList is an enum of statuses for the task list page.

const (
	TRBGuidanceLetterStatusTaskListCannotStartYet TRBGuidanceLetterStatusTaskList = "CANNOT_START_YET"
	TRBGuidanceLetterStatusTaskListInReview       TRBGuidanceLetterStatusTaskList = "IN_REVIEW"
	TRBGuidanceLetterStatusTaskListCompleted      TRBGuidanceLetterStatusTaskList = "COMPLETED"
)

These statuses are a simplified version of the regular TRBGuidanceLetterStatus enum above that are computed in the resolver.

type TRBLeadOption

type TRBLeadOption struct {
	BaseStruct
	EUAUserID string `json:"euaUserId" db:"eua_user_id"`
}

TRBLeadOption represents an EUA user who can be assigned as a TRB lead for a TRB request

type TRBRequest

type TRBRequest struct {
	BaseStruct
	Name               *string              `json:"name" db:"name"`
	Archived           bool                 `json:"archived" db:"archived"`
	Type               TRBRequestType       `json:"type" db:"type"`
	State              TRBRequestState      `json:"state" db:"state"`
	ConsultMeetingTime *time.Time           `json:"consultMeetingTime" db:"consult_meeting_time"`
	TRBLead            *string              `json:"trbLead" db:"trb_lead"`
	ContractName       zero.String          `json:"contractName" db:"contract_name"`
	SystemRelationType *RequestRelationType `json:"relationType" db:"system_relation_type"`
}

TRBRequest represents a TRB request object

func NewTRBRequest

func NewTRBRequest(createdBy string) *TRBRequest

NewTRBRequest returns a new trb request object

func (*TRBRequest) GetName

func (t *TRBRequest) GetName() string

GetName returns the name of the TRB request as a string. If the "Name" property is nil, it returns "Draft"

type TRBRequestAttendee

type TRBRequestAttendee struct {
	BaseStruct
	EUAUserID    string      `json:"euaUserId" db:"eua_user_id"`
	TRBRequestID uuid.UUID   `json:"trbRequestId" db:"trb_request_id"`
	Component    *string     `json:"component" db:"component"`
	Role         *PersonRole `json:"role" db:"role"`
}

TRBRequestAttendee represents an EUA user who is included as an attendee for a TRB request

func (TRBRequestAttendee) GetMappingKey

func (a TRBRequestAttendee) GetMappingKey() uuid.UUID

func (TRBRequestAttendee) GetMappingVal

func (a TRBRequestAttendee) GetMappingVal() *TRBRequestAttendee

type TRBRequestContractNumber

type TRBRequestContractNumber struct {
	BaseStructUser
	TRBRequestID   uuid.UUID `db:"trb_request_id"`
	ContractNumber string    `db:"contract_number"`
}

TRBRequestContractNumber is the insertion type for linking a TRB request to contract number(s)

func NewTRBRequestContractNumber

func NewTRBRequestContractNumber(createdBy uuid.UUID) TRBRequestContractNumber

NewTRBRequestContractNumber creates a TRBRequestContractNumber

func (*TRBRequestContractNumber) CreatedByUserAccount

func (cbr *TRBRequestContractNumber) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (TRBRequestContractNumber) GetMappingKey

func (t TRBRequestContractNumber) GetMappingKey() uuid.UUID

func (TRBRequestContractNumber) GetMappingVal

func (*TRBRequestContractNumber) ModifiedByUserAccount

func (mbr *TRBRequestContractNumber) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

type TRBRequestDocument

type TRBRequestDocument struct {
	BaseStruct
	TRBRequestID       uuid.UUID             `json:"trbRequestId" db:"trb_request_id"`
	CommonDocumentType TRBDocumentCommonType `db:"document_type"`
	OtherType          string                `db:"other_type"`
	FileName           string                `json:"fileName" db:"file_name"`
	Bucket             string                `json:"bucket" db:"bucket"`
	S3Key              string                `json:"s3Key" db:"s3_key"` // The document's key inside an S3 bucket; does *not* include the bucket name.
	DeletedAt          *time.Time            `json:"deletedAt" db:"deleted_at"`
}

TRBRequestDocument represents a document attached to a TRB request that has been uploaded to S3

func (TRBRequestDocument) GetMappingKey

func (d TRBRequestDocument) GetMappingKey() uuid.UUID

func (TRBRequestDocument) GetMappingVal

func (d TRBRequestDocument) GetMappingVal() *TRBRequestDocument

type TRBRequestDocumentStatus

type TRBRequestDocumentStatus string

TRBRequestDocumentStatus represents the availability of a document in regards to virus scanning

type TRBRequestDocumentType

type TRBRequestDocumentType struct {
	CommonType           TRBDocumentCommonType `json:"commonType"`
	OtherTypeDescription *string               `json:"otherTypeDescription,omitempty"`
}

Denotes the type of a document attached to a TRB request, which can be one of a number of common types, or a free-text user-specified type

type TRBRequestFeedback

type TRBRequestFeedback struct {
	BaseStruct
	TRBRequestID    uuid.UUID         `json:"trbRequestId" db:"trb_request_id"`
	FeedbackMessage HTML              `json:"feedbackMessage" db:"feedback_message"`
	CopyTRBMailbox  bool              `json:"copyTrbMailbox" db:"copy_trb_mailbox"`
	NotifyEUAIDs    pq.StringArray    `json:"notifyEuaIds" db:"notify_eua_ids"`
	Action          TRBFeedbackAction `json:"action" db:"action"`
}

TRBRequestFeedback represents an individual feedback item given on a TRB request

func (TRBRequestFeedback) GetMappingKey

func (tf TRBRequestFeedback) GetMappingKey() uuid.UUID

func (TRBRequestFeedback) GetMappingVal

func (tf TRBRequestFeedback) GetMappingVal() *TRBRequestFeedback

type TRBRequestForm

type TRBRequestForm struct {
	BaseStruct
	TRBRequestID             uuid.UUID                `json:"trbRequestId" db:"trb_request_id"`
	Status                   TRBFormStatus            `json:"status" db:"status"`
	Component                *string                  `json:"component" db:"component"`
	NeedsAssistanceWith      *string                  `json:"needsAssistanceWith" db:"needs_assistance_with"`
	HasSolutionInMind        *bool                    `json:"hasSolutionInMind" db:"has_solution_in_mind"`
	ProposedSolution         *string                  `json:"proposedSolution" db:"proposed_solution"`
	WhereInProcess           *TRBWhereInProcessOption `json:"whereInProcess" db:"where_in_process"`
	WhereInProcessOther      *string                  `json:"whereInProcessOther" db:"where_in_process_other"`
	HasExpectedStartEndDates *bool                    `json:"hasExpectedStartEndDates" db:"has_expected_start_end_dates"`
	ExpectedStartDate        *time.Time               `json:"expectedStartDate" db:"expected_start_date"`
	ExpectedEndDate          *time.Time               `json:"expectedEndDate" db:"expected_end_date"`
	// FundingSources                   []*TRBFundingSource      `json:"fundingSources"`
	CollabGroups                     pq.StringArray `json:"collabGroups" db:"collab_groups"`
	CollabDateSecurity               *string        `json:"collabDateSecurity" db:"collab_date_security"`
	CollabDateEnterpriseArchitecture *string        `json:"collabDateEnterpriseArchitecture" db:"collab_date_enterprise_architecture"`
	CollabDateCloud                  *string        `json:"collabDateCloud" db:"collab_date_cloud"`
	CollabDatePrivacyAdvisor         *string        `json:"collabDatePrivacyAdvisor" db:"collab_date_privacy_advisor"`
	CollabDateGovernanceReviewBoard  *string        `json:"collabDateGovernanceReviewBoard" db:"collab_date_governance_review_board"`
	CollabDateOther                  *string        `json:"collabDateOther" db:"collab_date_other"`
	CollabGroupOther                 *string        `json:"collabGroupOther" db:"collab_group_other"`
	CollabGRBConsultRequested        *bool          `json:"collabGRBConsultRequested" db:"collab_grb_consult_requested"`
	SubjectAreaOptions               pq.StringArray `json:"subjectAreaOptions" db:"subject_area_options"`
	SubjectAreaOptionOther           *string        `json:"subjectAreaOptionOther" db:"subject_area_option_other"`
	SubmittedAt                      *time.Time     `json:"submittedAt" db:"submitted_at"`
}

TRBRequestForm represents the data entered into the TRB request form

func NewTRBRequestForm

func NewTRBRequestForm(createdBy string) *TRBRequestForm

NewTRBRequestForm instantiates a TRB request form with default field values

func (TRBRequestForm) GetMappingKey

func (f TRBRequestForm) GetMappingKey() uuid.UUID

func (TRBRequestForm) GetMappingVal

func (f TRBRequestForm) GetMappingVal() *TRBRequestForm

type TRBRequestState

type TRBRequestState string

TRBRequestState represents the types of TRBRequestState types

const (
	TRBRequestStateOpen   TRBRequestState = "OPEN"
	TRBRequestStateClosed TRBRequestState = "CLOSED"
)

These are the options for TRBRequestStatus

type TRBRequestStatus

type TRBRequestStatus string

TRBRequestStatus is an enumeration of the possible values for the overall status of a TRB request

type TRBRequestSystem

type TRBRequestSystem struct {
	BaseStructUser
	TRBRequestID uuid.UUID `db:"trb_request_id"`
	SystemID     string    `db:"system_id"`
}

TRBRequestSystem is the insertion type for linking a trb request to CEDAR system(s)

func NewTRBRequestSystem

func NewTRBRequestSystem(createdBy uuid.UUID) TRBRequestSystem

NewTRBRequestSystem creates a TRBRequestSystemLink

func (*TRBRequestSystem) CreatedByUserAccount

func (cbr *TRBRequestSystem) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (TRBRequestSystem) GetMappingKey

func (t TRBRequestSystem) GetMappingKey() uuid.UUID

func (TRBRequestSystem) GetMappingVal

func (t TRBRequestSystem) GetMappingVal() *TRBRequestSystem

func (*TRBRequestSystem) ModifiedByUserAccount

func (mbr *TRBRequestSystem) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service

type TRBRequestSystemIntake

type TRBRequestSystemIntake struct {
	BaseStruct
	TRBRequestID   uuid.UUID `json:"trbRequestId" db:"trb_request_id"`
	SystemIntakeID uuid.UUID `json:"systemIntakeId" db:"system_intake_id"`
}

TRBRequestSystemIntake represents a system intake that has been associated with a TRB request

type TRBRequestType

type TRBRequestType string

TRBRequestType represents the types of TRBRequestType types

const (
	TRBTNeedHelp     TRBRequestType = "NEED_HELP"
	TRBTBrainstorm   TRBRequestType = "BRAINSTORM"
	TRBTFollowup     TRBRequestType = "FOLLOWUP"
	TRBTFormalReview TRBRequestType = "FORMAL_REVIEW"
	TRBTOther        TRBRequestType = "OTHER"
)

These are the options for TRBRequestType

type TRBRequestsByCedarSystemIDsRequest

type TRBRequestsByCedarSystemIDsRequest struct {
	CedarSystemID string
	State         TRBRequestState
}

TRBRequestsByCedarSystemIDsRequest is used as an input for dataloaders that can only receive a single argument

type TRBRequestsByCedarSystemIDsResponse

type TRBRequestsByCedarSystemIDsResponse struct {
	CedarSystemID string `db:"system_id"`
	TRBRequest
}

TRBRequestsByCedarSystemIDsResponse with the added related request ID allows for using the mapping helpers in the dataloader package.

func (TRBRequestsByCedarSystemIDsResponse) GetMappingKey

func (t TRBRequestsByCedarSystemIDsResponse) GetMappingKey() string

func (TRBRequestsByCedarSystemIDsResponse) GetMappingVal

type TRBSubjectAreaOption

type TRBSubjectAreaOption string

TRBSubjectAreaOption is an enum of the possible answers to the input on the TRB "Subject Areas" page

const (
	TRBSubjectAreaOptionAccessControlAndIdentityMgmt   TRBSubjectAreaOption = "ACCESS_CONTROL_AND_IDENTITY_MANAGEMENT"
	TRBSubjectAreaOptionAccessibilityCompliance        TRBSubjectAreaOption = "ACCESSIBILITY_COMPLIANCE"
	TRBSubjectAreaOptionArtificialIntelligence         TRBSubjectAreaOption = "ARTIFICIAL_INTELLIGENCE"
	TRBSubjectAreaOptionAssistanceWithSystemConceptDev TRBSubjectAreaOption = "ASSISTANCE_WITH_SYSTEM_CONCEPT_DEVELOPMENT"
	TRBSubjectAreaOptionBusinessIntelligence           TRBSubjectAreaOption = "BUSINESS_INTELLIGENCE"
	TRBSubjectAreaOptionCloudMigration                 TRBSubjectAreaOption = "CLOUD_MIGRATION"
	TRBSubjectAreaOptionContainersAndMicroservices     TRBSubjectAreaOption = "CONTAINERS_AND_MICROSERVICES"
	TRBSubjectAreaOptionDisasterRecovery               TRBSubjectAreaOption = "DISASTER_RECOVERY"
	TRBSubjectAreaOptionEmailIntegration               TRBSubjectAreaOption = "EMAIL_INTEGRATION"
	TRBSubjectAreaOptionEnterpriseDataLakeIntegration  TRBSubjectAreaOption = "ENTERPRISE_DATA_LAKE_INTEGRATION"
	TRBSubjectAreaOptionFrameworkOrToolAlternatives    TRBSubjectAreaOption = "FRAMEWORK_OR_TOOL_ALTERNATIVES"
	TRBSubjectAreaOptionOpenSourceSoftware             TRBSubjectAreaOption = "OPEN_SOURCE_SOFTWARE"
	TRBSubjectAreaOptionPortalIntegration              TRBSubjectAreaOption = "PORTAL_INTEGRATION"
	TRBSubjectAreaOptionTechnicalReferenceArchitecture TRBSubjectAreaOption = "TECHNICAL_REFERENCE_ARCHITECTURE"
	TRBSubjectAreaOptionSystemArchitectureReview       TRBSubjectAreaOption = "SYSTEM_ARCHITECTURE_REVIEW"
	TRBSubjectAreaOptionSystemDispositionPlanning      TRBSubjectAreaOption = "SYSTEM_DISPOSITION_PLANNING"
	TRBSubjectAreaOptionWebServicesAndAPIs             TRBSubjectAreaOption = "WEB_SERVICES_AND_APIS"
	TRBSubjectAreaOptionWebBasedUIService              TRBSubjectAreaOption = "WEB_BASED_UI_SERVICE"
)

These are the individual options for the "technical reference architecture" input

type TRBTaskStatuses

type TRBTaskStatuses struct {
	FormStatus                   TRBFormStatus                   `json:"formStatus"`
	FeedbackStatus               TRBFeedbackStatus               `json:"feedbackStatus"`
	ConsultPrepStatus            TRBConsultPrepStatus            `json:"consultPrepStatus"`
	AttendConsultStatus          TRBAttendConsultStatus          `json:"attendConsultStatus"`
	GuidanceLetterStatus         TRBGuidanceLetterStatus         `json:"guidanceLetterStatus"`
	GuidanceLetterStatusTaskList TRBGuidanceLetterStatusTaskList `json:"guidanceLetterStatusTaskList"`
}

TRBTaskStatuses contains the individual statuses for the steps of the TRB task list

type TRBWhereInProcessOption

type TRBWhereInProcessOption string

TRBWhereInProcessOption is an enumeration of possible responses to the "Where are you in your process?" question on the TRB request form

const (
	TRBWhereInProcessOptionIHaveAnIdeaAndWantToBrainstorm       TRBWhereInProcessOption = "I_HAVE_AN_IDEA_AND_WANT_TO_BRAINSTORM"
	TRBWhereInProcessOptionContractingWorkHasStarted            TRBWhereInProcessOption = "CONTRACTING_WORK_HAS_STARTED"
	TRBWhereInProcessOptionDevelopmentHasRecentlyStarted        TRBWhereInProcessOption = "DEVELOPMENT_HAS_RECENTLY_STARTED"
	TRBWhereInProcessOptionDevelopmentIsSignificantlyUnderway   TRBWhereInProcessOption = "DEVELOPMENT_IS_SIGNIFICANTLY_UNDERWAY"
	TRBWhereInProcessOptionTheSystemIsInOperationAndMaintenance TRBWhereInProcessOption = "THE_SYSTEM_IS_IN_OPERATION_AND_MAINTENANCE"
	TRBWhereInProcessOptionOther                                TRBWhereInProcessOption = "OTHER"
	TRBWhereInProcessOptionUnknown                              TRBWhereInProcessOption = "UNKNOWN"
)

These are the individual options for the response to the "Where are you in your process?" question on the TRB request form

type UpdateSystemIntakeAdminLeadInput

type UpdateSystemIntakeAdminLeadInput struct {
	AdminLead string    `json:"adminLead"`
	ID        uuid.UUID `json:"id"`
}

Input data used to update the admin lead assigned to a system IT governance request

type UpdateSystemIntakeContactDetailsInput

type UpdateSystemIntakeContactDetailsInput struct {
	ID              uuid.UUID                                `json:"id"`
	Requester       *SystemIntakeRequesterWithComponentInput `json:"requester"`
	BusinessOwner   *SystemIntakeBusinessOwnerInput          `json:"businessOwner"`
	ProductManager  *SystemIntakeProductManagerInput         `json:"productManager"`
	Isso            *SystemIntakeISSOInput                   `json:"isso"`
	GovernanceTeams *SystemIntakeGovernanceTeamInput         `json:"governanceTeams"`
}

The input data used to update the contact details of the people associated with a system request

type UpdateSystemIntakeContactInput

type UpdateSystemIntakeContactInput struct {
	ID             uuid.UUID `json:"id"`
	EuaUserID      string    `json:"euaUserId"`
	SystemIntakeID uuid.UUID `json:"systemIntakeId"`
	Component      string    `json:"component"`
	Role           string    `json:"role"`
}

The data needed to update a contact associated with a system intake

type UpdateSystemIntakeContractDetailsInput

type UpdateSystemIntakeContractDetailsInput struct {
	ID             uuid.UUID                        `json:"id"`
	FundingSources *SystemIntakeFundingSourcesInput `json:"fundingSources,omitempty"`
	Costs          *SystemIntakeCostsInput          `json:"costs,omitempty"`
	AnnualSpending *SystemIntakeAnnualSpendingInput `json:"annualSpending,omitempty"`
	Contract       *SystemIntakeContractInput       `json:"contract,omitempty"`
}

Input data for updating contract details related to a system request

type UpdateSystemIntakeGRBReviewerInput

type UpdateSystemIntakeGRBReviewerInput struct {
	ReviewerID uuid.UUID                         `json:"reviewerID"`
	VotingRole SystemIntakeGRBReviewerVotingRole `json:"votingRole"`
	GrbRole    SystemIntakeGRBReviewerRole       `json:"grbRole"`
}

type UpdateSystemIntakeLinkedCedarSystemInput

type UpdateSystemIntakeLinkedCedarSystemInput struct {
	ID            uuid.UUID `json:"id"`
	CedarSystemID *string   `json:"cedarSystemId,omitempty"`
}

Input data for updating a system intake's relationship to a CEDAR system

type UpdateSystemIntakeNoteInput

type UpdateSystemIntakeNoteInput struct {
	Content    HTML      `json:"content"`
	IsArchived bool      `json:"isArchived"`
	ID         uuid.UUID `json:"id"`
}

Input data for updating an IT governance admin note

type UpdateSystemIntakePayload

type UpdateSystemIntakePayload struct {
	SystemIntake *SystemIntake `json:"systemIntake,omitempty"`
	UserErrors   []*UserError  `json:"userErrors,omitempty"`
}

The payload for updating a system's IT governance request

type UpdateSystemIntakeRequestDetailsInput

type UpdateSystemIntakeRequestDetailsInput struct {
	ID                 uuid.UUID                                `json:"id"`
	RequestName        *string                                  `json:"requestName,omitempty"`
	BusinessNeed       *string                                  `json:"businessNeed,omitempty"`
	BusinessSolution   *string                                  `json:"businessSolution,omitempty"`
	CurrentStage       *string                                  `json:"currentStage,omitempty"`
	NeedsEaSupport     *bool                                    `json:"needsEaSupport,omitempty"`
	HasUIChanges       *bool                                    `json:"hasUiChanges,omitempty"`
	UsesAiTech         *bool                                    `json:"usesAiTech,omitempty"`
	UsingSoftware      *string                                  `json:"usingSoftware,omitempty"`
	AcquisitionMethods []SystemIntakeSoftwareAcquisitionMethods `json:"acquisitionMethods"`
	CedarSystemID      *string                                  `json:"cedarSystemId,omitempty"`
}

Input to update some fields on a system request

type UpdateSystemIntakeReviewDatesInput

type UpdateSystemIntakeReviewDatesInput struct {
	GrbDate *time.Time `json:"grbDate,omitempty"`
	GrtDate *time.Time `json:"grtDate,omitempty"`
	ID      uuid.UUID  `json:"id"`
}

Input data used to update GRT and GRB dates for a system request

type UpdateTRBGuidanceLetterRecommendationOrderInput

type UpdateTRBGuidanceLetterRecommendationOrderInput struct {
	TrbRequestID uuid.UUID `json:"trbRequestId"`
	// List of the recommendation IDs in the new order they should be displayed
	NewOrder []uuid.UUID                             `json:"newOrder"`
	Category TRBGuidanceLetterRecommendationCategory `json:"category"`
}

type UpdateTRBRequestAttendeeInput

type UpdateTRBRequestAttendeeInput struct {
	ID        uuid.UUID  `json:"id"`
	Component string     `json:"component"`
	Role      PersonRole `json:"role"`
}

Represents an EUA user who is included as an attendee for a TRB request

type UpdateTRBRequestConsultMeetingTimeInput

type UpdateTRBRequestConsultMeetingTimeInput struct {
	TrbRequestID       uuid.UUID `json:"trbRequestId"`
	ConsultMeetingTime time.Time `json:"consultMeetingTime"`
	CopyTrbMailbox     bool      `json:"copyTrbMailbox"`
	NotifyEuaIds       []string  `json:"notifyEuaIds"`
	Notes              string    `json:"notes"`
}

The data needed schedule a TRB consult meeting time

type UpdateTRBRequestFundingSourcesInput

type UpdateTRBRequestFundingSourcesInput struct {
	TrbRequestID  uuid.UUID `json:"trbRequestId"`
	FundingNumber string    `json:"fundingNumber"`
	Sources       []string  `json:"sources"`
}

type UpdateTRBRequestTRBLeadInput

type UpdateTRBRequestTRBLeadInput struct {
	TrbRequestID uuid.UUID `json:"trbRequestId"`
	TrbLead      string    `json:"trbLead"`
}

The data needed assign a TRB lead to a TRB request

type UserError

type UserError struct {
	Message string   `json:"message"`
	Path    []string `json:"path"`
}

UserError represents application-level errors that are the result of either user or application developer error.

type UserInfo

type UserInfo struct {
	FirstName   string
	LastName    string
	DisplayName string
	Email       EmailAddress
	Username    string
}

UserInfo is the model for personal details of a user

func (UserInfo) GetMappingKey

func (ui UserInfo) GetMappingKey() string

func (UserInfo) GetMappingVal

func (ui UserInfo) GetMappingVal() *UserInfo

Jump to

Keyboard shortcuts

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