Documentation ¶
Index ¶
- Constants
- func ContainsAllIDs[BS IBaseStruct](models []BS, ids []uuid.UUID) bool
- func ConvertEnums[EnumType ~string](pqGroups pq.StringArray) []EnumType
- func EmailAddressesToStringPtrs(addresses []EmailAddress) []*string
- func EmailAddressesToStrings(addresses []EmailAddress) []string
- func MarshalNullBool(nb null.Bool) graphql.Marshaler
- func MarshalNullFloat(zf null.Float) graphql.Marshaler
- func MarshalNullInt(ni null.Int) graphql.Marshaler
- func MarshalNullString(ns null.String) graphql.Marshaler
- func MarshalUUID(id uuid.UUID) graphql.Marshaler
- func MarshalZeroBool(zb zero.Bool) graphql.Marshaler
- func MarshalZeroFloat(zf zero.Float) graphql.Marshaler
- func MarshalZeroInt(zi zero.Int) graphql.Marshaler
- func MarshalZeroString(zs zero.String) graphql.Marshaler
- func MarshalZeroTime(zt zero.Time) graphql.Marshaler
- func StringsFromZeroStrs(zs []zero.String) []string
- func UnmarshalNullBool(v interface{}) (null.Bool, error)
- func UnmarshalNullFloat(v interface{}) (null.Float, error)
- func UnmarshalNullInt(v interface{}) (null.Int, error)
- func UnmarshalNullString(v interface{}) (null.String, error)
- func UnmarshalUUID(v interface{}) (uuid.UUID, error)
- func UnmarshalZeroBool(v interface{}) (zero.Bool, error)
- func UnmarshalZeroFloat(v interface{}) (zero.Float, error)
- func UnmarshalZeroInt(v interface{}) (zero.Int, error)
- func UnmarshalZeroString(v interface{}) (zero.String, error)
- func UnmarshalZeroTime(v interface{}) (zero.Time, error)
- func ZeroStringsFrom(strs []string) []zero.String
- type Action
- type ActionType
- type AugmentedSystemIntakeContact
- type BaseStruct
- type BaseStructUser
- func (cbr *BaseStructUser) CreatedByUserAccount(ctx context.Context) *authentication.UserAccount
- func (b *BaseStructUser) GetBaseStruct() *BaseStructUser
- func (b BaseStructUser) GetCreatedBy() string
- func (b BaseStructUser) GetID() uuid.UUID
- func (b BaseStructUser) GetModifiedBy() *string
- func (mbr *BaseStructUser) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
- type BudgetActualCost
- type BusinessCase
- type BusinessCaseStatus
- type BusinessCases
- type BusinessOwnerInformation
- type CedarAssigneeType
- type CedarAuthorityToOperate
- type CedarBudget
- type CedarBudgetSystemCost
- type CedarContract
- type CedarDataCenter
- type CedarDataCenter2
- type CedarDeployment
- type CedarExchange
- type CedarExchangeTypeOfDataItem
- type CedarRole
- type CedarRoleType
- type CedarSoftwareProducts
- type CedarSubSystem
- type CedarSystem
- type CedarSystemBookmark
- type CedarSystemDetails
- type CedarThreat
- type CedarURL
- type EmailAddress
- type EmailNotificationRecipients
- type EstimatedLifecycleCost
- type EstimatedLifecycleCosts
- type ExchangeDirection
- type GovernanceRequestFeedback
- type GovernanceRequestFeedbackSourceAction
- type GovernanceRequestFeedbackTargetForm
- type GovernanceRequestFeedbackType
- type HTML
- func (h HTML) MarshalGQLContext(ctx context.Context, w io.Writer) error
- func (h *HTML) StringPointer() *string
- func (h *HTML) ToTemplate() template.HTML
- func (h *HTML) UnmarshalGQLContext(ctx context.Context, v interface{}) error
- func (h *HTML) ValueOrEmptyHTML() HTML
- func (h *HTML) ValueOrEmptyString() string
- type IBaseStruct
- type ITGovDecisionStatus
- type ITGovDraftBusinessCaseStatus
- type ITGovFeedbackStatus
- type ITGovFinalBusinessCaseStatus
- type ITGovGRBStatus
- type ITGovGRTStatus
- type ITGovIntakeFormStatus
- type ITGovTaskStatuses
- type IntakeReview
- type IntakeReviewDecision
- type LifecycleCostPhase
- type LifecycleCostSolution
- type LifecycleCostYear
- type MetricsDigest
- type PersonRole
- type RequestRelationType
- type SoftwareProductItem
- type SystemIntake
- type SystemIntakeContact
- type SystemIntakeContractNumber
- type SystemIntakeDecisionState
- type SystemIntakeDocument
- type SystemIntakeDocumentCommonType
- type SystemIntakeDocumentStatus
- type SystemIntakeFormState
- type SystemIntakeFundingSource
- type SystemIntakeLCIDStatus
- type SystemIntakeMeetingState
- type SystemIntakeMetrics
- type SystemIntakeNote
- type SystemIntakeRequestType
- type SystemIntakeState
- type SystemIntakeStatusAdmin
- type SystemIntakeStatusRequester
- type SystemIntakeStep
- type SystemIntakeSystem
- type SystemIntakeTRBFollowUp
- type SystemIntakes
- type SystemMaintainerInformation
- type TRBAdminNote
- type TRBAdminNoteCategory
- type TRBAdminNoteTRBAdviceLetterRecommendationLink
- type TRBAdminNoteTRBRequestDocumentLink
- type TRBAdviceLetter
- type TRBAdviceLetterRecommendation
- type TRBAdviceLetterStatus
- type TRBAdviceLetterStatusTaskList
- type TRBAttendConsultStatus
- type TRBCollabGroupOption
- type TRBConsultPrepStatus
- type TRBDocumentCommonType
- type TRBFeedbackAction
- type TRBFeedbackStatus
- type TRBFormStatus
- type TRBFundingSource
- type TRBLeadOption
- type TRBRequest
- type TRBRequestAttendee
- type TRBRequestContractNumber
- type TRBRequestDocument
- type TRBRequestDocumentStatus
- type TRBRequestFeedback
- type TRBRequestForm
- type TRBRequestState
- type TRBRequestStatus
- type TRBRequestSystem
- type TRBRequestSystemIntake
- type TRBRequestType
- type TRBSubjectAreaOption
- type TRBTaskStatuses
- type TRBWhereInProcessOption
- type UserInfo
Constants ¶
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" )
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 SystemIntakeDocumentStatus = "UNAVAILABLE" // SystemIntakeDocumentCommonTypeSOOSOW means the document is an SOO or SOW SystemIntakeDocumentCommonTypeSOOSOW SystemIntakeDocumentCommonType = "SOO_SOW" // SystemIntakeDocumentCommonTypeDraftICGE means the document is a draft ICGE SystemIntakeDocumentCommonTypeDraftICGE SystemIntakeDocumentCommonType = "DRAFT_ICGE" // SystemIntakeDocumentCommonTypeDraftOther means the document is some type other than the common document types SystemIntakeDocumentCommonTypeDraftOther SystemIntakeDocumentCommonType = "OTHER" )
const ( TRBRequestStatusNew = "NEW" TRBRequestStatusDraftRequestForm = "DRAFT_REQUEST_FORM" TRBRequestStatusRequestFormComplete = "REQUEST_FORM_COMPLETE" TRBRequestStatusReadyForConsult = "READY_FOR_CONSULT" TRBRequestStatusConsultScheduled = "CONSULT_SCHEDULED" TRBRequestStatusConsultComplete = "CONSULT_COMPLETE" TRBRequestStatusDraftAdviceLetter = "DRAFT_ADVICE_LETTER" TRBRequestStatusAdviceLetterInReview = "ADVICE_LETTER_IN_REVIEW" TRBRequestStatusAdviceLetterSent = "ADVICE_LETTER_SENT" TRBRequestStatusFollowUpRequested = "FOLLOW_UP_REQUESTED" )
These are the possible values for TRBRequestStatus
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 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 ¶
This section is empty.
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 MarshalUUID ¶
MarshalUUID allows uuid to be marshalled by graphql
func StringsFromZeroStrs ¶
func UnmarshalNullBool ¶
func UnmarshalNullFloat ¶
func UnmarshalNullInt ¶
func UnmarshalNullString ¶
func UnmarshalUUID ¶
UnmarshalUUID allows uuid to be unmarshalled by graphql
func UnmarshalZeroBool ¶
func UnmarshalZeroFloat ¶
func UnmarshalZeroInt ¶
func UnmarshalZeroString ¶
func UnmarshalZeroTime ¶
func ZeroStringsFrom ¶
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
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" 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
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
ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service
type BudgetActualCost ¶
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"` LifecycleCostLines EstimatedLifecycleCosts `json:"lifecycleCostLines" db:"lifecycle_cost_lines"` CreatedAt *time.Time `json:"createdAt" db:"created_at"` UpdatedAt *time.Time `json:"updatedAt" db:"updated_at"` ArchivedAt *time.Time `db:"archived_at"` }
BusinessCase is the model for the business case form.
type BusinessCaseStatus ¶
type BusinessCaseStatus string
BusinessCaseStatus represents the status of a system intake
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"` CostPerYear zero.String `json:"costPerYear"` IsCmsOwned bool `json:"isCmsOwned"` 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 CedarBudgetSystemCost ¶
type CedarBudgetSystemCost struct { // Always present fields BudgetActualCosts []*BudgetActualCost `json:"budgetActualCosts"` }
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"` 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"` 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 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 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"` }
CedarSoftwareProduct 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"` }
CedarSubSystem is the model for a sub system that comes back from the CEDAR Core API
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"` 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"` }
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"` }
CedarSystemDetails contains more detailed information related to 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 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.
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 = "receiver" )
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
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 ¶
func (tf GovernanceRequestFeedbackTargetForm) Humanize() string
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 ¶
HTMLPointer returns a pointer to an HTML type from a string input
func (HTML) MarshalGQLContext ¶
MarshalGQLContext marshals the HTML type to JSON to return to graphQL
func (*HTML) StringPointer ¶
StringPointer casts an HTML pointer to a string pointer
func (*HTML) ToTemplate ¶
ToTemplate converts and sanitizes the HTML type to a template.HTML struct
func (*HTML) UnmarshalGQLContext ¶
UnmarshalGQLContext unmarshals the data from graphql to the HTML type
func (*HTML) ValueOrEmptyHTML ¶
ValueOrEmptyHTML returns either the value of the html or an empty HTML type if nil
func (*HTML) ValueOrEmptyString ¶
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 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 MetricsDigest ¶
type MetricsDigest struct {
SystemIntakeMetrics SystemIntakeMetrics `json:"system_intake"`
}
MetricsDigest contains a set of metrics
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 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 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 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 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"` 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"` 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 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 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
CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service
func (*SystemIntakeContractNumber) ModifiedByUserAccount ¶
func (mbr *SystemIntakeContractNumber) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
ModifiedByUserAccount returns the user account of the user who modified the struct from the DB using the UserAccount service
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 SystemIntakeRequestID uuid.UUID `json:"systemIntakeId" db:"system_intake_id"` CommonDocumentType SystemIntakeDocumentCommonType `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. }
SystemIntakeDocument represents a document attached to a system intake that has been uploaded to S3
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 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 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
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 SystemIntakeMetrics ¶
type SystemIntakeMetrics struct { StartTime time.Time `json:"startTime"` EndTime time.Time `json:"endTime"` Started int `json:"started"` CompletedOfStarted int `json:"completedOfStarted"` Completed int `json:"completed"` Funded int `json:"funded"` }
SystemIntakeMetrics is a model for storing metrics related to system intake
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
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 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 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
CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service
func (*SystemIntakeSystem) ModifiedByUserAccount ¶
func (mbr *SystemIntakeSystem) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
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 SystemMaintainerInformation ¶
type SystemMaintainerInformation struct { AgileUsed bool `json:"agileUsed"` BusinessArtifactsOnDemand bool `json:"businessArtifactsOnDemand"` 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"` MajorRefreshDate zero.Time `json:"majorRefreshDate"` NetAccessibility zero.String `json:"netAccessibility"` OmDocumentationOnDemand bool `json:"omDocumentationOnDemand"` PlansToRetireReplace zero.String `json:"plansToRetireReplace"` QuarterToRetireReplace zero.String `json:"quarterToRetireReplace"` RecordsManagementBucket []zero.String `json:"recordsManagementBucket"` SourceCodeOnDemand bool `json:"sourceCodeOnDemand"` SystemCustomization zero.String `json:"systemCustomization"` SystemDesignOnDemand bool `json:"systemDesignOnDemand"` 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"` // Advice 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
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" TRBAdminNoteCategoryAdviceLetter TRBAdminNoteCategory = "ADVICE_LETTER" )
These are the possible categories for a TRB admin note
type TRBAdminNoteTRBAdviceLetterRecommendationLink ¶
type TRBAdminNoteTRBAdviceLetterRecommendationLink struct { BaseStruct TRBRequestID uuid.UUID `json:"trbRequestId" db:"trb_request_id"` TRBAdminNoteID uuid.UUID `json:"trbAdminNoteId" db:"trb_admin_note_id"` TRBAdviceLetterRecommendationID uuid.UUID `json:"trbAdviceLetterRecommendationId" db:"trb_advice_letter_recommendation_id"` }
TRBAdminNoteTRBAdviceLetterRecommendationLink represents an association between a TRB admin note (in the Advice Letter category) and a TRB advice letter recommendation
type TRBAdminNoteTRBRequestDocumentLink ¶
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 TRBAdviceLetter ¶
type TRBAdviceLetter struct { BaseStruct TRBRequestID uuid.UUID `json:"trbRequestId" db:"trb_request_id"` Status TRBAdviceLetterStatus `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"` }
TRBAdviceLetter represents the data for a TRB advice letter
type TRBAdviceLetterRecommendation ¶
type TRBAdviceLetterRecommendation 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"` }
TRBAdviceLetterRecommendation represents the data for a TRB advice letter recommendation
type TRBAdviceLetterStatus ¶
type TRBAdviceLetterStatus string
TRBAdviceLetterStatus is an enumeration of the possible statuses of a TRBAdviceLetter
const ( TRBAdviceLetterStatusCannotStartYet TRBAdviceLetterStatus = "CANNOT_START_YET" TRBAdviceLetterStatusReadyToStart TRBAdviceLetterStatus = "READY_TO_START" TRBAdviceLetterStatusInProgress TRBAdviceLetterStatus = "IN_PROGRESS" TRBAdviceLetterStatusReadyForReview TRBAdviceLetterStatus = "READY_FOR_REVIEW" TRBAdviceLetterStatusCompleted TRBAdviceLetterStatus = "COMPLETED" )
These are the possible statuses for a TRB advice letter
type TRBAdviceLetterStatusTaskList ¶
type TRBAdviceLetterStatusTaskList string
TRBAdviceLetterStatusTaskList is an enum of statuses for the task list page.
const ( TRBAdviceLetterStatusTaskListCannotStartYet TRBAdviceLetterStatusTaskList = "CANNOT_START_YET" TRBAdviceLetterStatusTaskListInReview TRBAdviceLetterStatusTaskList = "IN_REVIEW" TRBAdviceLetterStatusTaskListCompleted TRBAdviceLetterStatusTaskList = "COMPLETED" )
These statuses are a simplified version of the regular TRBAdviceLetterStatus enum above that are computed in the resolver.
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 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
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
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 nunber(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
CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service
func (*TRBRequestContractNumber) ModifiedByUserAccount ¶
func (mbr *TRBRequestContractNumber) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
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
type TRBRequestDocumentStatus ¶
type TRBRequestDocumentStatus string
TRBRequestDocumentStatus represents the availability of a document in regards to virus scanning
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
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
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 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
CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service
func (*TRBRequestSystem) ModifiedByUserAccount ¶
func (mbr *TRBRequestSystem) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
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 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" 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"` AdviceLetterStatus TRBAdviceLetterStatus `json:"adviceLetterStatus"` AdviceLetterStatusTaskList TRBAdviceLetterStatusTaskList `json:"adviceLetterStatusTaskList"` }
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
Source Files ¶
- action.go
- base_struct.go
- base_struct_user.go
- business_case.go
- cedar_authority_to_operate.go
- cedar_budget.go
- cedar_budget_system_cost.go
- cedar_contract.go
- cedar_data_center.go
- cedar_deployment.go
- cedar_exchange.go
- cedar_role.go
- cedar_software_products.go
- cedar_system.go
- cedar_system_bookmark.go
- cedar_threat.go
- cedar_url.go
- created_by_relation.go
- email_address.go
- governance_request_feedback.go
- gql_scalars.go
- html.go
- intake_review.go
- it_gov_task_statuses.go
- metrics.go
- model_helpers.go
- modified_by_relation.go
- relation.go
- system_intake.go
- system_intake_contact.go
- system_intake_contract_number.go
- system_intake_document.go
- system_intake_funding_source.go
- system_intake_note.go
- system_intake_status_admin.go
- system_intake_status_requester.go
- system_intake_system.go
- trb_admin_note.go
- trb_admin_note_trb_recommendation_link.go
- trb_admin_note_trb_request_document_link.go
- trb_advice_letter.go
- trb_advice_letter_recommendation.go
- trb_lead_option.go
- trb_request.go
- trb_request_attendee.go
- trb_request_contract_number.go
- trb_request_document.go
- trb_request_feedback.go
- trb_request_form.go
- trb_request_funding_source.go
- trb_request_lcid.go
- trb_request_system.go
- user_info.go
- uuid.go