Documentation ¶
Index ¶
- Constants
- Variables
- 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 NewUserIDRelation(userID uuid.UUID) userIDRelation
- 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 BusinessCaseSolution
- type BusinessCaseStatus
- type BusinessCases
- type BusinessOwnerInformation
- type CedarAssigneeType
- type CedarAuthorityToOperate
- type CedarBudget
- type CedarBudgetActualCost
- type CedarBudgetSystemCost
- type CedarBusinessOwnerInformation
- type CedarContract
- type CedarDataCenter
- type CedarDataCenter2
- type CedarDeployment
- type CedarExchange
- type CedarExchangeTypeOfDataItem
- type CedarRole
- type CedarRoleType
- type CedarSoftwareProductItem
- type CedarSoftwareProducts
- type CedarSubSystem
- type CedarSystem
- type CedarSystemBookmark
- type CedarSystemDetails
- type CedarSystemMaintainerInformation
- type CedarThreat
- type CedarURL
- type CloseTRBRequestInput
- type ContractDate
- type CreateCedarSystemBookmarkInput
- type CreateCedarSystemBookmarkPayload
- type CreateSystemIntakeContactInput
- type CreateSystemIntakeContactPayload
- type CreateSystemIntakeDocumentInput
- type CreateSystemIntakeDocumentPayload
- type CreateSystemIntakeInput
- type CreateSystemIntakeNoteInput
- type CreateTRBAdminNoteAdviceLetterInput
- type CreateTRBAdminNoteConsultSessionInput
- type CreateTRBAdminNoteGeneralRequestInput
- type CreateTRBAdminNoteInitialRequestFormInput
- type CreateTRBAdminNoteSupportingDocumentsInput
- type CreateTRBAdviceLetterRecommendationInput
- type CreateTRBRequestAttendeeInput
- type CreateTRBRequestDocumentInput
- type CreateTRBRequestDocumentPayload
- type CreateTRBRequestFeedbackInput
- type CurrentUser
- type DeleteCedarSystemBookmarkPayload
- type DeleteSystemIntakeContactInput
- type DeleteSystemIntakeContactPayload
- type DeleteSystemIntakeDocumentPayload
- type DeleteTRBRequestDocumentPayload
- type DeleteTRBRequestFundingSourcesInput
- 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 LaunchDarklySettings
- type LifecycleCostPhase
- type LifecycleCostSolution
- type LifecycleCostYear
- type MetricsDigest
- type Mutation
- type PersonRole
- type Query
- type ReopenTRBRequestInput
- type Request
- type RequestEdge
- type RequestRelationType
- type RequestType
- type RequestsConnection
- type Role
- type SIGRBReviewerRole
- type SIGRBReviewerVotingRole
- type SendCantFindSomethingEmailInput
- type SendFeedbackEmailInput
- type SendReportAProblemEmailInput
- type SendTRBAdviceLetterInput
- type SetRolesForUserOnSystemInput
- type SetSystemIntakeRelationExistingServiceInput
- type SetSystemIntakeRelationExistingSystemInput
- type SetSystemIntakeRelationNewSystemInput
- type SetTRBRequestRelationExistingServiceInput
- type SetTRBRequestRelationExistingSystemInput
- type SetTRBRequestRelationNewSystemInput
- type SoftwareProductItem
- type SubmitIntakeInput
- type SystemIntake
- type SystemIntakeAction
- type SystemIntakeActionActor
- type SystemIntakeActionType
- type SystemIntakeAnnualSpending
- type SystemIntakeAnnualSpendingInput
- type SystemIntakeBusinessOwner
- type SystemIntakeBusinessOwnerInput
- type SystemIntakeChangeLCIDRetirementDateInput
- type SystemIntakeCloseRequestInput
- type SystemIntakeCollaborator
- type SystemIntakeCollaboratorInput
- type SystemIntakeConfirmLCIDInput
- type SystemIntakeContact
- type SystemIntakeContactsPayload
- type SystemIntakeContract
- type SystemIntakeContractInput
- type SystemIntakeContractNumber
- type SystemIntakeCosts
- type SystemIntakeCostsInput
- type SystemIntakeDecisionState
- type SystemIntakeDocument
- type SystemIntakeDocumentCommonType
- type SystemIntakeDocumentStatus
- type SystemIntakeDocumentType
- type SystemIntakeExpireLCIDInput
- type SystemIntakeFormState
- type SystemIntakeFormStep
- type SystemIntakeFundingSource
- type SystemIntakeFundingSourceInput
- type SystemIntakeFundingSourcesInput
- type SystemIntakeGRBReviewer
- func (cbr *SystemIntakeGRBReviewer) CreatedByUserAccount(ctx context.Context) *authentication.UserAccount
- func (mbr *SystemIntakeGRBReviewer) ModifiedByUserAccount(ctx context.Context) *authentication.UserAccount
- func (b *SystemIntakeGRBReviewer) UserAccount(ctx context.Context) (*authentication.UserAccount, error)
- type SystemIntakeGRBReviewerRole
- type SystemIntakeGRBReviewerVotingRole
- type SystemIntakeGovernanceTeam
- type SystemIntakeGovernanceTeamInput
- type SystemIntakeISSOInput
- type SystemIntakeIsso
- type SystemIntakeIssueLCIDInput
- type SystemIntakeLCIDExpirationChange
- type SystemIntakeLCIDStatus
- type SystemIntakeMeetingState
- type SystemIntakeMetrics
- type SystemIntakeNotITGovReqInput
- type SystemIntakeNote
- type SystemIntakeNoteAuthor
- type SystemIntakeProductManager
- type SystemIntakeProductManagerInput
- type SystemIntakeProgressToNewStepsInput
- type SystemIntakeRejectIntakeInput
- type SystemIntakeReopenRequestInput
- type SystemIntakeRequestEditsInput
- type SystemIntakeRequestType
- type SystemIntakeRequester
- type SystemIntakeRequesterInput
- type SystemIntakeRequesterWithComponentInput
- type SystemIntakeRetireLCIDInput
- type SystemIntakeState
- type SystemIntakeStatusAdmin
- type SystemIntakeStatusRequester
- type SystemIntakeStep
- type SystemIntakeStepToProgressTo
- type SystemIntakeSystem
- type SystemIntakeTRBFollowUp
- type SystemIntakeUpdateLCIDInput
- type SystemIntakes
- type SystemMaintainerInformation
- type TRBAdminNote
- type TRBAdminNoteAdviceLetterCategoryData
- type TRBAdminNoteCategory
- type TRBAdminNoteCategorySpecificData
- type TRBAdminNoteConsultSessionCategoryData
- type TRBAdminNoteGeneralRequestCategoryData
- type TRBAdminNoteInitialRequestFormCategoryData
- type TRBAdminNoteSupportingDocumentsCategoryData
- 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 TRBRequestDocumentType
- type TRBRequestFeedback
- type TRBRequestForm
- type TRBRequestState
- type TRBRequestStatus
- type TRBRequestSystem
- type TRBRequestSystemIntake
- type TRBRequestType
- type TRBSubjectAreaOption
- type TRBTaskStatuses
- type TRBWhereInProcessOption
- type UpdateSystemIntakeAdminLeadInput
- type UpdateSystemIntakeContactDetailsInput
- type UpdateSystemIntakeContactInput
- type UpdateSystemIntakeContractDetailsInput
- type UpdateSystemIntakeLinkedCedarSystemInput
- type UpdateSystemIntakeNoteInput
- type UpdateSystemIntakePayload
- type UpdateSystemIntakeRequestDetailsInput
- type UpdateSystemIntakeReviewDatesInput
- type UpdateTRBAdviceLetterRecommendationOrderInput
- type UpdateTRBRequestAttendeeInput
- type UpdateTRBRequestConsultMeetingTimeInput
- type UpdateTRBRequestFundingSourcesInput
- type UpdateTRBRequestTRBLeadInput
- type UserError
- 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 ¶
var AllRequestType = []RequestType{ RequestTypeGovernanceRequest, }
var AllRole = []Role{ RoleEasiGovteam, RoleEasiTrbAdmin, RoleEasiUser, }
var AllSystemIntakeActionType = []SystemIntakeActionType{ SystemIntakeActionTypeProgressToNewStep, SystemIntakeActionTypeRequestEdits, SystemIntakeActionTypeExpireLcid, SystemIntakeActionTypeNotGovernance, SystemIntakeActionTypeCloseRequest, SystemIntakeActionTypeReopenRequest, SystemIntakeActionTypeUpdateLcid, SystemIntakeActionTypeConfirmLcid, SystemIntakeActionTypeRetireLcid, SystemIntakeActionTypeChangeLcidRetirementDate, SystemIntakeActionTypeIssueLcid, SystemIntakeActionTypeSubmitIntake, SystemIntakeActionTypeReject, SystemIntakeActionTypeBizCaseNeedsChanges, SystemIntakeActionTypeCreateBizCase, SystemIntakeActionTypeGUIDEReceivedClose, SystemIntakeActionTypeExtendLcid, SystemIntakeActionTypeNeedBizCase, SystemIntakeActionTypeNoGovernanceNeeded, SystemIntakeActionTypeNotItRequest, SystemIntakeActionTypeNotRespondingClose, SystemIntakeActionTypeProvideFeedbackNeedBizCase, SystemIntakeActionTypeProvideGrtFeedbackBizCaseDraft, SystemIntakeActionTypeProvideGrtFeedbackBizCaseFinal, SystemIntakeActionTypeReadyForGrb, SystemIntakeActionTypeReadyForGrt, SystemIntakeActionTypeSendEmail, SystemIntakeActionTypeSubmitBizCase, SystemIntakeActionTypeSubmitFinalBizCase, }
var AllSystemIntakeFormStep = []SystemIntakeFormStep{ SystemIntakeFormStepInitialRequestForm, SystemIntakeFormStepDraftBusinessCase, SystemIntakeFormStepFinalBusinessCase, }
var AllSystemIntakeGRBReviewerRole = []SystemIntakeGRBReviewerRole{ SystemIntakeGRBReviewerRoleVoting, SystemIntakeGRBReviewerRoleAlternate, SystemIntakeGRBReviewerRoleNonVoting, }
var AllSystemIntakeGRBReviewerVotingRole = []SystemIntakeGRBReviewerVotingRole{ SystemIntakeGRBReviewerVotingRoleCoChairCio, SystemIntakeGRBReviewerVotingRoleCoChairCfo, SystemIntakeGRBReviewerVotingRoleCoChairHca, SystemIntakeGRBReviewerVotingRoleAca3021Rep, SystemIntakeGRBReviewerVotingRoleCciioRep, SystemIntakeGRBReviewerVotingRoleProgramOperationsBdgChair, SystemIntakeGRBReviewerVotingRoleCmcsRep, SystemIntakeGRBReviewerVotingRoleFedAdminBdgChair, SystemIntakeGRBReviewerVotingRoleProgramIntegrityBdgChair, SystemIntakeGRBReviewerVotingRoleQioRep, SystemIntakeGRBReviewerVotingRoleSubjectMatterExpert, SystemIntakeGRBReviewerVotingRoleOther, }
var AllSystemIntakeStepToProgressTo = []SystemIntakeStepToProgressTo{ SystemIntakeStepToProgressToDraftBusinessCase, SystemIntakeStepToProgressToGrtMeeting, SystemIntakeStepToProgressToGrbMeeting, SystemIntakeStepToProgressToFinalBusinessCase, }
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 NewUserIDRelation ¶
NewUserIDRelation returns a user ID relation object
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 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 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"` 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 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"` }
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"` 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"` }
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 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"` OtherTypeDescription *string `json:"otherTypeDescription,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 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 CreateTRBAdminNoteAdviceLetterInput ¶
type CreateTRBAdminNoteAdviceLetterInput 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 Advice Letter category
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 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 CreateTRBAdviceLetterRecommendationInput ¶
type CreateTRBAdviceLetterRecommendationInput struct { TrbRequestID uuid.UUID `json:"trbRequestId"` Title string `json:"title"` Recommendation HTML `json:"recommendation"` Links []string `json:"links"` }
The input required to add a recommendation & links to a TRB advice 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 ¶
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 DeleteTRBRequestDocumentPayload ¶
type DeleteTRBRequestDocumentPayload struct {
Document *TRBRequestDocument `json:"document,omitempty"`
}
Data returned after deleting a document attached to a TRB request
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 ExchangeDirection = "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 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 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 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 Request ¶
type Request struct { ID uuid.UUID `json:"id"` Name *string `json:"name,omitempty"` SubmittedAt *time.Time `json:"submittedAt,omitempty"` Type RequestType `json:"type"` Status string `json:"status"` StatusRequester *SystemIntakeStatusRequester `json:"statusRequester,omitempty"` StatusCreatedAt *time.Time `json:"statusCreatedAt,omitempty"` Lcid *string `json:"lcid,omitempty"` NextMeetingDate *time.Time `json:"nextMeetingDate,omitempty"` }
Represents a requester's system intake request
type RequestEdge ¶
type RequestEdge struct {
Node *Request `json:"node"`
}
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 RequestType ¶
type RequestType string
Indicates the type of a request being made with the EASi system
const (
RequestTypeGovernanceRequest RequestType = "GOVERNANCE_REQUEST"
)
func (RequestType) IsValid ¶
func (e RequestType) IsValid() bool
func (RequestType) MarshalGQL ¶
func (e RequestType) MarshalGQL(w io.Writer)
func (RequestType) String ¶
func (e RequestType) String() string
func (*RequestType) UnmarshalGQL ¶
func (e *RequestType) UnmarshalGQL(v interface{}) error
type RequestsConnection ¶
type RequestsConnection struct {
Edges []*RequestEdge `json:"edges"`
}
type Role ¶
type Role string
A user role associated with a job code
func (Role) MarshalGQL ¶
func (*Role) UnmarshalGQL ¶
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 SendTRBAdviceLetterInput ¶
type SendTRBAdviceLetterInput struct { ID uuid.UUID `json:"id"` CopyTrbMailbox bool `json:"copyTrbMailbox"` NotifyEuaIds []string `json:"notifyEuaIds"` }
The data needed to send a TRB advice letter, including who to notify
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 SubmitIntakeInput ¶
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"` 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 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 ¶
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" 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
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 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 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 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 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
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
CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service
func (*SystemIntakeGRBReviewer) ModifiedByUserAccount ¶
func (mbr *SystemIntakeGRBReviewer) 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
func (*SystemIntakeGRBReviewer) UserAccount ¶
func (b *SystemIntakeGRBReviewer) UserAccount(ctx context.Context) (*authentication.UserAccount, error)
type SystemIntakeGRBReviewerRole ¶
type SystemIntakeGRBReviewerRole string
const ( SystemIntakeGRBReviewerRoleVoting SystemIntakeGRBReviewerRole = "VOTING" SystemIntakeGRBReviewerRoleAlternate SystemIntakeGRBReviewerRole = "ALTERNATE" SystemIntakeGRBReviewerRoleNonVoting SystemIntakeGRBReviewerRole = "NON_VOTING" )
func (SystemIntakeGRBReviewerRole) IsValid ¶
func (e SystemIntakeGRBReviewerRole) IsValid() bool
func (SystemIntakeGRBReviewerRole) MarshalGQL ¶
func (e SystemIntakeGRBReviewerRole) MarshalGQL(w io.Writer)
func (SystemIntakeGRBReviewerRole) String ¶
func (e SystemIntakeGRBReviewerRole) String() string
func (*SystemIntakeGRBReviewerRole) UnmarshalGQL ¶
func (e *SystemIntakeGRBReviewerRole) UnmarshalGQL(v interface{}) error
type SystemIntakeGRBReviewerVotingRole ¶
type SystemIntakeGRBReviewerVotingRole string
const ( SystemIntakeGRBReviewerVotingRoleCoChairCio SystemIntakeGRBReviewerVotingRole = "CO_CHAIR_CIO" SystemIntakeGRBReviewerVotingRoleCoChairCfo SystemIntakeGRBReviewerVotingRole = "CO_CHAIR_CFO" SystemIntakeGRBReviewerVotingRoleCoChairHca SystemIntakeGRBReviewerVotingRole = "CO_CHAIR_HCA" SystemIntakeGRBReviewerVotingRoleAca3021Rep SystemIntakeGRBReviewerVotingRole = "ACA_3021_REP" SystemIntakeGRBReviewerVotingRoleCciioRep SystemIntakeGRBReviewerVotingRole = "CCIIO_REP" SystemIntakeGRBReviewerVotingRoleProgramOperationsBdgChair SystemIntakeGRBReviewerVotingRole = "PROGRAM_OPERATIONS_BDG_CHAIR" SystemIntakeGRBReviewerVotingRoleCmcsRep SystemIntakeGRBReviewerVotingRole = "CMCS_REP" SystemIntakeGRBReviewerVotingRoleFedAdminBdgChair SystemIntakeGRBReviewerVotingRole = "FED_ADMIN_BDG_CHAIR" SystemIntakeGRBReviewerVotingRoleProgramIntegrityBdgChair SystemIntakeGRBReviewerVotingRole = "PROGRAM_INTEGRITY_BDG_CHAIR" SystemIntakeGRBReviewerVotingRoleQioRep SystemIntakeGRBReviewerVotingRole = "QIO_REP" SystemIntakeGRBReviewerVotingRoleSubjectMatterExpert SystemIntakeGRBReviewerVotingRole = "SUBJECT_MATTER_EXPERT" SystemIntakeGRBReviewerVotingRoleOther SystemIntakeGRBReviewerVotingRole = "OTHER" )
func (SystemIntakeGRBReviewerVotingRole) IsValid ¶
func (e SystemIntakeGRBReviewerVotingRole) IsValid() bool
func (SystemIntakeGRBReviewerVotingRole) MarshalGQL ¶
func (e SystemIntakeGRBReviewerVotingRole) MarshalGQL(w io.Writer)
func (SystemIntakeGRBReviewerVotingRole) String ¶
func (e SystemIntakeGRBReviewerVotingRole) String() 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 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 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
type SystemIntakeNoteAuthor ¶
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 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 (e SystemIntakeStepToProgressTo) String() 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
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 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 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"` // 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 TRBAdminNoteAdviceLetterCategoryData ¶
type TRBAdminNoteAdviceLetterCategoryData struct { AppliesToMeetingSummary bool `json:"appliesToMeetingSummary"` AppliesToNextSteps bool `json:"appliesToNextSteps"` Recommendations []*TRBAdviceLetterRecommendation `json:"recommendations"` }
Data specific to admin notes in the Advice Letter category The "recommendations" property _will_ return deleted recommendations so that UI can reference the recommendation title
func (TRBAdminNoteAdviceLetterCategoryData) IsTRBAdminNoteCategorySpecificData ¶
func (TRBAdminNoteAdviceLetterCategoryData) IsTRBAdminNoteCategorySpecificData()
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 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 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 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 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
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
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 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"` NeedsEaSupport *bool `json:"needsEaSupport,omitempty"` CurrentStage *string `json:"currentStage,omitempty"` CedarSystemID *string `json:"cedarSystemId,omitempty"` HasUIChanges *bool `json:"hasUiChanges,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 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 UpdateTRBRequestTRBLeadInput ¶
type UpdateTRBRequestTRBLeadInput struct { TrbRequestID uuid.UUID `json:"trbRequestId"` TrbLead string `json:"trbLead"` }
The data needed assign a TRB lead to a TRB request
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
- models_gen.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_grb_reviewers.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_id_relation.go
- user_info.go
- uuid.go