Files
probo/pkg/server/api/console/v1/schema.graphql
Bryan Frimin 7b320916af Add audit log feature for recording all actions
Adds audit logging that records all authorized actions performed by
users and API keys. The audit log is automatically populated whenever
the authorizer approves an action, and is queryable via GraphQL, MCP,
and CLI interfaces. Permission checks are excluded via a dry-run flag
to avoid phantom entries on page loads.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-21 19:16:19 +01:00

6041 lines
167 KiB
GraphQL

# Directives
directive @goField(
forceResolver: Boolean
name: String
omittable: Boolean
) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION
directive @goModel(
model: String
models: [String!]
) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION
directive @goEnum(value: String) on ENUM_VALUE
# Scalars
scalar CursorKey
scalar Datetime
scalar Upload
scalar Duration
scalar BigInt
scalar EmailAddr
# Interfaces
interface Node {
id: ID!
}
# Pagination
type PageInfo {
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: CursorKey
endCursor: CursorKey
}
# Enums
enum OrderDirection
@goModel(model: "go.probo.inc/probo/pkg/page.OrderDirection") {
ASC @goEnum(value: "go.probo.inc/probo/pkg/page.OrderDirectionAsc")
DESC @goEnum(value: "go.probo.inc/probo/pkg/page.OrderDirectionDesc")
}
enum MeasureState
@goModel(model: "go.probo.inc/probo/pkg/coredata.MeasureState") {
NOT_STARTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MeasureStateNotStarted")
IN_PROGRESS
@goEnum(value: "go.probo.inc/probo/pkg/coredata.MeasureStateInProgress")
NOT_APPLICABLE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MeasureStateNotApplicable"
)
IMPLEMENTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MeasureStateImplemented"
)
}
enum TaskState @goModel(model: "go.probo.inc/probo/pkg/coredata.TaskState") {
TODO @goEnum(value: "go.probo.inc/probo/pkg/coredata.TaskStateTodo")
DONE @goEnum(value: "go.probo.inc/probo/pkg/coredata.TaskStateDone")
}
enum EvidenceState
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceState") {
FULFILLED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceStateFulfilled")
REQUESTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceStateRequested")
}
enum DocumentVersionStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.DocumentVersionStatus") {
DRAFT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionStatusDraft"
)
PUBLISHED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionStatusPublished"
)
}
enum DocumentStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.DocumentStatus") {
ACTIVE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentStatusActive")
ARCHIVED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentStatusArchived")
}
enum EvidenceType
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceType") {
FILE @goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceTypeFile")
LINK @goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceTypeLink")
}
enum RiskTreatment
@goModel(model: "go.probo.inc/probo/pkg/coredata.RiskTreatment") {
MITIGATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RiskTreatmentMitigated")
ACCEPTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RiskTreatmentAccepted")
AVOIDED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RiskTreatmentAvoided")
TRANSFERRED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskTreatmentTransferred"
)
}
enum AuditState @goModel(model: "go.probo.inc/probo/pkg/coredata.AuditState") {
NOT_STARTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateNotStarted")
IN_PROGRESS
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateInProgress")
COMPLETED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateCompleted")
REJECTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateRejected")
OUTDATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateOutdated")
}
enum TrustCenterVisibility
@goModel(model: "go.probo.inc/probo/pkg/coredata.TrustCenterVisibility") {
NONE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterVisibilityNone"
)
PRIVATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterVisibilityPrivate"
)
PUBLIC
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterVisibilityPublic"
)
}
enum ControlImplementationState
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ControlImplementationState"
) {
IMPLEMENTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ControlImplementationStateImplemented"
)
NOT_IMPLEMENTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ControlImplementationStateNotImplemented"
)
}
enum TrustCenterDocumentAccessStatus
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessStatus"
) {
REQUESTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessStatusRequested"
)
GRANTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessStatusGranted"
)
REJECTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessStatusRejected"
)
REVOKED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessStatusRevoked"
)
}
enum FindingKind
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingKind") {
MINOR_NONCONFORMITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingKindMinorNonconformity"
)
MAJOR_NONCONFORMITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingKindMajorNonconformity"
)
OBSERVATION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingKindObservation"
)
EXCEPTION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingKindException"
)
}
enum FindingStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingStatus") {
OPEN
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusOpen"
)
IN_PROGRESS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusInProgress"
)
CLOSED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusClosed"
)
RISK_ACCEPTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusRiskAccepted"
)
MITIGATED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusMitigated"
)
FALSE_POSITIVE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingStatusFalsePositive"
)
}
enum FindingPriority
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingPriority") {
LOW
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityLow"
)
MEDIUM
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityMedium"
)
HIGH
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityHigh"
)
}
enum ObligationStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.ObligationStatus") {
NON_COMPLIANT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationStatusNonCompliant"
)
PARTIALLY_COMPLIANT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationStatusPartiallyCompliant"
)
COMPLIANT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationStatusCompliant"
)
}
enum ObligationType
@goModel(model: "go.probo.inc/probo/pkg/coredata.ObligationType") {
LEGAL @goEnum(value: "go.probo.inc/probo/pkg/coredata.ObligationTypeLegal")
CONTRACTUAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationTypeContractual"
)
}
enum RightsRequestType
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestType") {
ACCESS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeAccess"
)
DELETION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeDeletion"
)
PORTABILITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypePortability"
)
}
enum RightsRequestState
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestState") {
TODO
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateTodo")
IN_PROGRESS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateInProgress"
)
DONE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateDone")
}
enum ProcessingActivitySpecialOrCriminalDatum
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivitySpecialOrCriminalDatum"
) {
YES
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivitySpecialOrCriminalDatumYes"
)
NO
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivitySpecialOrCriminalDatumNo"
)
POSSIBLE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivitySpecialOrCriminalDatumPossible"
)
}
enum ProcessingActivityLawfulBasis
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasis"
) {
LEGITIMATE_INTEREST
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisLegitimateInterest"
)
CONSENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisConsent"
)
CONTRACTUAL_NECESSITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisContractualNecessity"
)
LEGAL_OBLIGATION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisLegalObligation"
)
VITAL_INTERESTS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisVitalInterests"
)
PUBLIC_TASK
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityLawfulBasisPublicTask"
)
}
enum ProcessingActivityTransferSafeguard
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguard"
) {
STANDARD_CONTRACTUAL_CLAUSES
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardStandardContractualClauses"
)
BINDING_CORPORATE_RULES
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardBindingCorporateRules"
)
ADEQUACY_DECISION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardAdequacyDecision"
)
DEROGATIONS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardDerogations"
)
CODES_OF_CONDUCT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardCodesOfConduct"
)
CERTIFICATION_MECHANISMS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferSafeguardCertificationMechanisms"
)
}
enum ProcessingActivityDataProtectionImpactAssessment
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityDataProtectionImpactAssessment"
) {
NEEDED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityDataProtectionImpactAssessmentNeeded"
)
NOT_NEEDED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityDataProtectionImpactAssessmentNotNeeded"
)
}
enum ProcessingActivityTransferImpactAssessment
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferImpactAssessment"
) {
NEEDED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferImpactAssessmentNeeded"
)
NOT_NEEDED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityTransferImpactAssessmentNotNeeded"
)
}
enum DataProtectionImpactAssessmentResidualRisk
@goModel(
model: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentResidualRisk"
) {
LOW
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentResidualRiskLow"
)
MEDIUM
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentResidualRiskMedium"
)
HIGH
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentResidualRiskHigh"
)
}
enum ProcessingActivityRole
@goModel(model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityRole") {
CONTROLLER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityRoleController"
)
PROCESSOR
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityRoleProcessor"
)
}
# Order Field Enums
enum ProfileOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderField") {
FULL_NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldFullName"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldCreatedAt"
)
KIND @goEnum(value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldKind")
}
enum VendorOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.VendorOrderField") {
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorOrderFieldName")
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorOrderFieldCreatedAt"
)
UPDATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorOrderFieldUpdatedAt"
)
}
enum FrameworkOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.FrameworkOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FrameworkOrderFieldCreatedAt"
)
}
enum ControlOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.ControlOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ControlOrderFieldCreatedAt"
)
SECTION_TITLE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ControlOrderFieldSectionTitle"
)
}
enum MeasureOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.MeasureOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MeasureOrderFieldCreatedAt"
)
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.MeasureOrderFieldName")
}
enum TaskOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.TaskOrderField") {
CREATED_AT
}
enum DocumentOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.DocumentOrderField") {
TITLE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentOrderFieldTitle"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentOrderFieldCreatedAt"
)
DOCUMENT_TYPE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentOrderFieldDocumentType"
)
}
enum MeetingOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.MeetingOrderField") {
DATE @goEnum(value: "go.probo.inc/probo/pkg/coredata.MeetingOrderFieldDate")
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.MeetingOrderFieldName")
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MeetingOrderFieldCreatedAt"
)
}
enum WebhookSubscriptionOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.WebhookSubscriptionOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.WebhookSubscriptionOrderFieldCreatedAt"
)
}
enum AuditLogActorType
@goModel(
model: "go.probo.inc/probo/pkg/coredata.AuditLogActorType"
) {
USER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditLogActorTypeUser"
)
API_KEY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditLogActorTypeAPIKey"
)
SYSTEM
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditLogActorTypeSystem"
)
}
enum AuditLogEntryOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.AuditLogEntryOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditLogEntryOrderFieldCreatedAt"
)
}
enum RiskOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.RiskOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldCreatedAt"
)
UPDATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldUpdatedAt"
)
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldName")
CATEGORY
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldCategory")
TREATMENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldTreatment"
)
INHERENT_RISK_SCORE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldInherentRiskScore"
)
RESIDUAL_RISK_SCORE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldResidualRiskScore"
)
OWNER_FULL_NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RiskOrderFieldOwnerFullName"
)
}
enum EvidenceOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceOrderField") {
CREATED_AT
}
enum VendorComplianceReportOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.VendorComplianceReportOrderField"
) {
REPORT_DATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorComplianceReportOrderFieldReportDate"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorComplianceReportOrderFieldCreatedAt"
)
}
enum VendorContactOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.VendorContactOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorContactOrderFieldCreatedAt"
)
FULL_NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorContactOrderFieldFullName"
)
EMAIL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorContactOrderFieldEmail"
)
}
enum VendorServiceOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.VendorServiceOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorServiceOrderFieldCreatedAt"
)
NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorServiceOrderFieldName"
)
}
enum DataSensitivity
@goModel(model: "go.probo.inc/probo/pkg/coredata.DataSensitivity") {
NONE @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityNone")
LOW @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityLow")
MEDIUM
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityMedium")
HIGH @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityHigh")
CRITICAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataSensitivityCritical"
)
}
enum BusinessImpact
@goModel(model: "go.probo.inc/probo/pkg/coredata.BusinessImpact") {
LOW @goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactLow")
MEDIUM
@goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactMedium")
HIGH @goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactHigh")
CRITICAL
@goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactCritical")
}
enum DocumentVersionOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.DocumentVersionOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionOrderFieldCreatedAt"
)
}
enum ApplicabilityStatementOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.ApplicabilityStatementOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ApplicabilityStatementOrderFieldCreatedAt"
)
CONTROL_SECTION_TITLE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ApplicabilityStatementOrderFieldControlSectionTitle"
)
}
enum CountryCode
@goModel(model: "go.probo.inc/probo/pkg/coredata.CountryCode") {
AD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAD")
AE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAE")
AF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAF")
AG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAG")
AI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAI")
AL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAL")
AM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAM")
AO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAO")
AQ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAQ")
AR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAR")
AS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAS")
AT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAT")
AU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAU")
AW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAW")
AX @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAX")
AZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeAZ")
BA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBA")
BB @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBB")
BD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBD")
BE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBE")
BF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBF")
BG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBG")
BH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBH")
BI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBI")
BJ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBJ")
BL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBL")
BM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBM")
BN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBN")
BO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBO")
BQ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBQ")
BR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBR")
BS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBS")
BT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBT")
BV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBV")
BW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBW")
BY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBY")
BZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeBZ")
CA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCA")
CC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCC")
CD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCD")
CF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCF")
CG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCG")
CH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCH")
CI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCI")
CK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCK")
CL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCL")
CM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCM")
CN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCN")
CO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCO")
CR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCR")
CU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCU")
CV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCV")
CW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCW")
CX @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCX")
CY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCY")
CZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeCZ")
DE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDE")
DJ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDJ")
DK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDK")
DM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDM")
DO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDO")
DZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeDZ")
EC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeEC")
EE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeEE")
EG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeEG")
EH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeEH")
ER @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeER")
ES @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeES")
ET @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeET")
EU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeEU")
FI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFI")
FJ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFJ")
FK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFK")
FM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFM")
FO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFO")
FR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeFR")
GA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGA")
GB @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGB")
GD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGD")
GE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGE")
GF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGF")
GG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGG")
GH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGH")
GI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGI")
GL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGL")
GM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGM")
GN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGN")
GP @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGP")
GQ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGQ")
GR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGR")
GT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGT")
GU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGU")
GW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGW")
GY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeGY")
HK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHK")
HM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHM")
HN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHN")
HR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHR")
HT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHT")
HU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeHU")
ID @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeID")
IE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIE")
IL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIL")
IM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIM")
IN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIN")
IO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIO")
IQ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIQ")
IR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIR")
IS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIS")
IT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeIT")
JE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeJE")
JM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeJM")
JO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeJO")
JP @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeJP")
KE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKE")
KG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKG")
KH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKH")
KI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKI")
KM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKM")
KN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKN")
KP @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKP")
KR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKR")
KW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKW")
KY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKY")
KZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeKZ")
LA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLA")
LB @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLB")
LC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLC")
LI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLI")
LK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLK")
LR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLR")
LS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLS")
LT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLT")
LU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLU")
LV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLV")
LY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeLY")
MA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMA")
MC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMC")
MD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMD")
ME @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeME")
MF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMF")
MG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMG")
MH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMH")
MK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMK")
ML @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeML")
MM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMM")
MN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMN")
MO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMO")
MP @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMP")
MQ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMQ")
MR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMR")
MS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMS")
MT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMT")
MU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMU")
MV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMV")
MW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMW")
MX @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMX")
MY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMY")
MZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeMZ")
NA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNA")
NC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNC")
NE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNE")
NF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNF")
NG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNG")
NI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNI")
NL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNL")
NO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNO")
NP @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNP")
NR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNR")
NU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNU")
NZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeNZ")
OM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeOM")
PA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePA")
PE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePE")
PF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePF")
PG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePG")
PH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePH")
PK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePK")
PL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePL")
PM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePM")
PN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePN")
PR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePR")
PS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePS")
PT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePT")
PW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePW")
PY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodePY")
QA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeQA")
RE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeRE")
RO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeRO")
RS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeRS")
RU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeRU")
RW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeRW")
SA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSA")
SB @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSB")
SC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSC")
SD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSD")
SE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSE")
SG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSG")
SH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSH")
SI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSI")
SJ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSJ")
SK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSK")
SL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSL")
SM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSM")
SN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSN")
SO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSO")
SR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSR")
SS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSS")
ST @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeST")
SV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSV")
SX @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSX")
SY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSY")
SZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeSZ")
TC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTC")
TD @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTD")
TF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTF")
TG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTG")
TH @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTH")
TJ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTJ")
TK @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTK")
TL @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTL")
TM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTM")
TN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTN")
TO @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTO")
TR @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTR")
TT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTT")
TV @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTV")
TW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTW")
TZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeTZ")
UA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUA")
UG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUG")
UM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUM")
US @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUS")
UY @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUY")
UZ @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeUZ")
VA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVA")
VC @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVC")
VE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVE")
VG @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVG")
VI @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVI")
VN @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVN")
VU @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeVU")
WF @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeWF")
WS @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeWS")
YE @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeYE")
YT @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeYT")
ZA @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeZA")
ZM @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeZM")
ZW @goEnum(value: "go.probo.inc/probo/pkg/coredata.CountryCodeZW")
}
enum VendorCategory
@goModel(model: "go.probo.inc/probo/pkg/coredata.VendorCategory") {
ANALYTICS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryAnalytics"
)
CLOUD_MONITORING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryCloudMonitoring"
)
CLOUD_PROVIDER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryCloudProvider"
)
COLLABORATION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryCollaboration"
)
CUSTOMER_SUPPORT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryCustomerSupport"
)
DATA_STORAGE_AND_PROCESSING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryDataStorageAndProcessing"
)
DOCUMENT_MANAGEMENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryDocumentManagement"
)
EMPLOYEE_MANAGEMENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryEmployeeManagement"
)
ENGINEERING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryEngineering"
)
FINANCE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorCategoryFinance")
IDENTITY_PROVIDER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryIdentityProvider"
)
IT @goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorCategoryIT")
MARKETING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryMarketing"
)
OFFICE_OPERATIONS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryOfficeOperations"
)
OTHER @goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorCategoryOther")
PASSWORD_MANAGEMENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryPasswordManagement"
)
PRODUCT_AND_DESIGN
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryProductAndDesign"
)
PROFESSIONAL_SERVICES
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryProfessionalServices"
)
RECRUITING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryRecruiting"
)
SALES @goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorCategorySales")
SECURITY
@goEnum(value: "go.probo.inc/probo/pkg/coredata.VendorCategorySecurity")
VERSION_CONTROL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorCategoryVersionControl"
)
}
enum DocumentType
@goModel(model: "go.probo.inc/probo/pkg/coredata.DocumentType") {
OTHER @goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeOther")
GOVERNANCE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeGovernance")
POLICY @goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypePolicy")
PROCEDURE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeProcedure")
PLAN @goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypePlan")
REGISTER
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeRegister")
RECORD @goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeRecord")
REPORT @goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeReport")
TEMPLATE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DocumentTypeTemplate")
}
enum DocumentClassification
@goModel(model: "go.probo.inc/probo/pkg/coredata.DocumentClassification") {
PUBLIC
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentClassificationPublic"
)
INTERNAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentClassificationInternal"
)
CONFIDENTIAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentClassificationConfidential"
)
SECRET
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentClassificationSecret"
)
}
enum AssetType @goModel(model: "go.probo.inc/probo/pkg/coredata.AssetType") {
PHYSICAL @goEnum(value: "go.probo.inc/probo/pkg/coredata.AssetTypePhysical")
VIRTUAL @goEnum(value: "go.probo.inc/probo/pkg/coredata.AssetTypeVirtual")
}
enum AssetOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.AssetOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AssetOrderFieldCreatedAt"
)
AMOUNT
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AssetOrderFieldAmount")
}
enum DatumOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.DatumOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DatumOrderFieldCreatedAt"
)
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.DatumOrderFieldName")
DATA_CLASSIFICATION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DatumOrderFieldDataClassification"
)
}
enum DataClassification
@goModel(model: "go.probo.inc/probo/pkg/coredata.DataClassification") {
PUBLIC
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataClassificationPublic"
)
INTERNAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataClassificationInternal"
)
CONFIDENTIAL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataClassificationConfidential"
)
SECRET
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataClassificationSecret"
)
}
enum AuditOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.AuditOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldCreatedAt"
)
VALID_FROM
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldValidFrom"
)
VALID_UNTIL
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldValidUntil"
)
STATE @goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldState")
}
enum FindingOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldCreatedAt"
)
REFERENCE_ID
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldReferenceId"
)
IDENTIFIED_ON
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldIdentifiedOn"
)
DUE_DATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldDueDate"
)
STATUS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldStatus"
)
PRIORITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldPriority"
)
KIND
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldKind"
)
}
enum ObligationOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.ObligationOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationOrderFieldCreatedAt"
)
LAST_REVIEW_DATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationOrderFieldLastReviewDate"
)
DUE_DATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationOrderFieldDueDate"
)
STATUS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ObligationOrderFieldStatus"
)
}
enum RightsRequestOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestOrderFieldCreatedAt"
)
DEADLINE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestOrderFieldDeadline"
)
STATE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestOrderFieldState"
)
TYPE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestOrderFieldType"
)
}
enum ProcessingActivityOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ProcessingActivityOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityOrderFieldCreatedAt"
)
NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ProcessingActivityOrderFieldName"
)
}
enum DataProtectionImpactAssessmentOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DataProtectionImpactAssessmentOrderFieldCreatedAt"
)
}
enum TransferImpactAssessmentOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TransferImpactAssessmentOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TransferImpactAssessmentOrderFieldCreatedAt"
)
}
enum TrustCenterAccessOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterAccessOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterAccessOrderFieldCreatedAt"
)
}
enum TrustCenterAccessState
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterAccessState"
) {
ACTIVE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterAccessStateActive"
)
INACTIVE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterAccessStateInactive"
)
}
enum TrustCenterDocumentAccessOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterDocumentAccessOrderFieldCreatedAt"
)
}
enum TrustCenterReferenceOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterReferenceOrderField"
) {
RANK
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterReferenceOrderFieldRank"
)
NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterReferenceOrderFieldName"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterReferenceOrderFieldCreatedAt"
)
UPDATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterReferenceOrderFieldUpdatedAt"
)
}
enum ComplianceExternalURLOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ComplianceExternalURLOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceExternalURLOrderFieldCreatedAt"
)
RANK
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceExternalURLOrderFieldRank"
)
}
enum ComplianceFrameworkOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkOrderFieldCreatedAt"
)
RANK
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkOrderFieldRank"
)
}
enum ComplianceFrameworkVisibility
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkVisibility"
) {
NONE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkVisibilityNone"
)
PUBLIC
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ComplianceFrameworkVisibilityPublic"
)
}
enum TrustCenterFileOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.TrustCenterFileOrderField"
) {
NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterFileOrderFieldName"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterFileOrderFieldCreatedAt"
)
UPDATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.TrustCenterFileOrderFieldUpdatedAt"
)
}
enum SnapshotsType
@goModel(model: "go.probo.inc/probo/pkg/coredata.SnapshotsType") {
RISKS @goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeRisks")
VENDORS
@goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeVendors")
ASSETS @goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeAssets")
DATA @goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeData")
FINDINGS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeFindings"
)
OBLIGATIONS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeObligations"
)
PROCESSING_ACTIVITIES
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeProcessingActivities"
)
STATES_OF_APPLICABILITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.SnapshotsTypeStatesOfApplicability"
)
}
enum SnapshotOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.SnapshotOrderField") {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.SnapshotOrderFieldCreatedAt"
)
NAME
@goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotOrderFieldName")
TYPE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.SnapshotOrderFieldType")
}
# Input Types
input ProfileOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ProfileOrderBy"
) {
direction: OrderDirection!
field: ProfileOrderField!
}
input VendorOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorOrderBy"
) {
direction: OrderDirection!
field: VendorOrderField!
}
input FrameworkOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FrameworkOrderBy"
) {
direction: OrderDirection!
field: FrameworkOrderField!
}
input ControlOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ControlOrderBy"
) {
direction: OrderDirection!
field: ControlOrderField!
}
input MeasureOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MeasureOrderBy"
) {
direction: OrderDirection!
field: MeasureOrderField!
}
input TaskOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TaskOrderBy"
) {
direction: OrderDirection!
field: TaskOrderField!
}
input DocumentOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DocumentOrderBy"
) {
direction: OrderDirection!
field: DocumentOrderField!
}
input MeetingOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MeetingOrderBy"
) {
direction: OrderDirection!
field: MeetingOrderField!
}
input WebhookSubscriptionOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.WebhookSubscriptionOrderBy"
) {
direction: OrderDirection!
field: WebhookSubscriptionOrderField!
}
input RiskOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.RiskOrderBy"
) {
direction: OrderDirection!
field: RiskOrderField!
}
input AuditOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditOrderBy"
) {
direction: OrderDirection!
field: AuditOrderField!
}
input FindingOrder {
field: FindingOrderField!
direction: OrderDirection!
}
input ObligationOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ObligationOrderBy"
) {
direction: OrderDirection!
field: ObligationOrderField!
}
input RightsRequestOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.RightsRequestOrderBy"
) {
direction: OrderDirection!
field: RightsRequestOrderField!
}
input ProcessingActivityOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ProcessingActivityOrderBy"
) {
direction: OrderDirection!
field: ProcessingActivityOrderField!
}
input DataProtectionImpactAssessmentOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DataProtectionImpactAssessmentOrderBy"
) {
direction: OrderDirection!
field: DataProtectionImpactAssessmentOrderField!
}
input TransferImpactAssessmentOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TransferImpactAssessmentOrderBy"
) {
direction: OrderDirection!
field: TransferImpactAssessmentOrderField!
}
input TrustCenterAccessOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterAccessOrderBy"
) {
direction: OrderDirection!
field: TrustCenterAccessOrderField!
}
input TrustCenterDocumentAccessOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterDocumentAccessOrderBy"
) {
direction: OrderDirection!
field: TrustCenterDocumentAccessOrderField!
}
input TrustCenterReferenceOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterReferenceOrderBy"
) {
direction: OrderDirection!
field: TrustCenterReferenceOrderField!
}
input TrustCenterFileOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterFileOrderBy"
) {
direction: OrderDirection!
field: TrustCenterFileOrderField!
}
input ComplianceExternalURLOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ComplianceExternalURLOrderBy"
) {
direction: OrderDirection!
field: ComplianceExternalURLOrderField!
}
input ComplianceFrameworkOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ComplianceFrameworkOrderBy"
) {
direction: OrderDirection!
field: ComplianceFrameworkOrderField!
}
input EvidenceOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.EvidenceOrderBy"
) {
direction: OrderDirection!
field: EvidenceOrderField!
}
input VendorComplianceReportOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorComplianceReportOrderBy"
) {
direction: OrderDirection!
field: VendorComplianceReportOrderField!
}
input VendorContactOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorContactOrderBy"
) {
direction: OrderDirection!
field: VendorContactOrderField!
}
input VendorServiceOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorServiceOrderBy"
) {
direction: OrderDirection!
field: VendorServiceOrderField!
}
input DocumentVersionOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DocumentVersionOrderBy"
) {
direction: OrderDirection!
field: DocumentVersionOrderField!
}
input SnapshotOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.SnapshotOrderBy"
) {
direction: OrderDirection!
field: SnapshotOrderField!
}
input ApplicabilityStatementOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ApplicabilityStatementOrderBy"
) {
direction: OrderDirection!
field: ApplicabilityStatementOrderField!
}
input DocumentVersionFilter {
status: DocumentVersionStatus
}
# Input Types for Filtering
input ControlFilter {
query: String
}
input DocumentFilter {
query: String
documentTypes: [DocumentType!]
status: [DocumentStatus!]
}
input MeasureFilter {
query: String
state: MeasureState
category: String
}
input RiskFilter {
query: String
snapshotId: ID
}
input ProfileFilter {
excludeContractEnded: Boolean
}
input DatumFilter {
snapshotId: ID
}
input StateOfApplicabilityFilter {
snapshotId: ID
}
input FindingFilter {
snapshotId: ID
kind: FindingKind
status: FindingStatus
priority: FindingPriority
ownerId: ID
}
input ObligationFilter {
snapshotId: ID
}
input ProcessingActivityFilter {
snapshotId: ID
}
input DataProtectionImpactAssessmentFilter {
snapshotId: ID
}
input TransferImpactAssessmentFilter {
snapshotId: ID
}
input AssetFilter {
snapshotId: ID
}
input VendorFilter {
snapshotId: ID
}
# Core Types
type TrustCenter implements Node
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenter"
) {
id: ID!
active: Boolean!
logoFileUrl: String @goField(forceResolver: true)
darkLogoFileUrl: String @goField(forceResolver: true)
ndaFileName: String
ndaFileUrl: String @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
organization: Organization! @goField(forceResolver: true)
accesses(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TrustCenterAccessOrder
): TrustCenterAccessConnection! @goField(forceResolver: true)
references(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TrustCenterReferenceOrder
): TrustCenterReferenceConnection! @goField(forceResolver: true)
complianceFrameworks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ComplianceFrameworkOrder
): ComplianceFrameworkConnection! @goField(forceResolver: true)
externalUrls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ComplianceExternalURLOrder
): ComplianceExternalURLConnection! @goField(forceResolver: true)
mailingList: MailingList @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type MailingList implements Node {
id: ID!
replyTo: EmailAddr
subscribers(
first: Int
after: CursorKey
last: Int
before: CursorKey
): MailingListSubscriberConnection! @goField(forceResolver: true)
updates(
first: Int
after: CursorKey
last: Int
before: CursorKey
): MailingListUpdateConnection! @goField(forceResolver: true)
}
enum MailingListSubscriberStatus
@goModel(
model: "go.probo.inc/probo/pkg/coredata.MailingListSubscriberStatus"
) {
PENDING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListSubscriberStatusPending"
)
CONFIRMED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListSubscriberStatusConfirmed"
)
}
type MailingListSubscriber implements Node {
id: ID!
fullName: String!
email: EmailAddr!
status: MailingListSubscriberStatus!
createdAt: Datetime!
updatedAt: Datetime!
}
type MailingListSubscriberConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MailingListSubscriberConnection"
) {
edges: [MailingListSubscriberEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type MailingListSubscriberEdge {
cursor: CursorKey!
node: MailingListSubscriber!
}
enum MailingListUpdateStatus
@goModel(
model: "go.probo.inc/probo/pkg/coredata.MailingListUpdateStatus"
) {
DRAFT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListUpdateStatusDraft"
)
ENQUEUED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListUpdateStatusEnqueued"
)
PROCESSING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListUpdateStatusProcessing"
)
SENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MailingListUpdateStatusSent"
)
}
type MailingListUpdate implements Node {
id: ID!
title: String!
body: String!
status: MailingListUpdateStatus!
createdAt: Datetime!
updatedAt: Datetime!
}
type MailingListUpdateConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MailingListUpdateConnection"
) {
edges: [MailingListUpdateEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type MailingListUpdateEdge {
cursor: CursorKey!
node: MailingListUpdate!
}
type Organization implements Node {
id: ID!
name: String!
logoUrl: String @goField(forceResolver: true)
horizontalLogoUrl: String @goField(forceResolver: true)
description: String
websiteUrl: String
email: String
headquarterAddress: String
context: OrganizationContext @goField(forceResolver: true)
profiles(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProfileOrder
filter: ProfileFilter
): ProfileConnection! @goField(forceResolver: true)
slackConnections(
first: Int
after: CursorKey
last: Int
before: CursorKey
): SlackConnectionConnection! @goField(forceResolver: true)
frameworks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: FrameworkOrder
): FrameworkConnection! @goField(forceResolver: true)
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
vendors(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorOrder
filter: VendorFilter = { snapshotId: null }
): VendorConnection! @goField(forceResolver: true)
documents(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentOrder
filter: DocumentFilter
): DocumentConnection! @goField(forceResolver: true)
meetings(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: MeetingOrder
): MeetingConnection! @goField(forceResolver: true)
statesOfApplicability(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: StateOfApplicabilityOrder
filter: StateOfApplicabilityFilter = { snapshotId: null }
): StateOfApplicabilityConnection! @goField(forceResolver: true)
measureCategories: [String!]! @goField(forceResolver: true)
measures(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: MeasureOrder
filter: MeasureFilter
): MeasureConnection! @goField(forceResolver: true)
risks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: RiskOrder
filter: RiskFilter = { snapshotId: null }
): RiskConnection! @goField(forceResolver: true)
tasks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TaskOrder
): TaskConnection! @goField(forceResolver: true)
assets(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: AssetOrder
filter: AssetFilter = { snapshotId: null }
): AssetConnection! @goField(forceResolver: true)
data(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DatumOrder
filter: DatumFilter = { snapshotId: null }
): DatumConnection! @goField(forceResolver: true)
audits(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: AuditOrder
): AuditConnection! @goField(forceResolver: true)
findings(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: FindingOrder
filter: FindingFilter = { snapshotId: null }
): FindingConnection @goField(forceResolver: true)
obligations(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ObligationOrder
filter: ObligationFilter = { snapshotId: null }
): ObligationConnection! @goField(forceResolver: true)
rightsRequests(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: RightsRequestOrder
): RightsRequestConnection! @goField(forceResolver: true)
processingActivities(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProcessingActivityOrder
filter: ProcessingActivityFilter = { snapshotId: null }
): ProcessingActivityConnection! @goField(forceResolver: true)
dataProtectionImpactAssessments(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DataProtectionImpactAssessmentOrder
filter: DataProtectionImpactAssessmentFilter = { snapshotId: null }
): DataProtectionImpactAssessmentConnection! @goField(forceResolver: true)
transferImpactAssessments(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TransferImpactAssessmentOrder
filter: TransferImpactAssessmentFilter = { snapshotId: null }
): TransferImpactAssessmentConnection! @goField(forceResolver: true)
snapshots(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: SnapshotOrder
): SnapshotConnection! @goField(forceResolver: true)
trustCenterFiles(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TrustCenterFileOrder
): TrustCenterFileConnection! @goField(forceResolver: true)
trustCenter: TrustCenter @goField(forceResolver: true)
customDomain: CustomDomain @goField(forceResolver: true)
webhookSubscriptions(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: WebhookSubscriptionOrder
): WebhookSubscriptionConnection! @goField(forceResolver: true)
auditLogEntries(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: AuditLogEntryOrder
filter: AuditLogEntryFilter
): AuditLogEntryConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type SlackConnection {
id: ID!
channel: String
channelId: String
createdAt: Datetime!
updatedAt: Datetime!
}
type SlackConnectionConnection {
edges: [SlackConnectionEdge!]!
pageInfo: PageInfo!
}
type SlackConnectionEdge {
cursor: CursorKey!
node: SlackConnection!
}
type Profile implements Node {
id: ID!
fullName: String!
emailAddress: EmailAddr!
state: ProfileState!
additionalEmailAddresses: [EmailAddr!]!
kind: String
position: String
contractStartDate: Datetime
contractEndDate: Datetime
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
enum ProfileState
@goModel(model: "go.probo.inc/probo/pkg/coredata.ProfileState") {
ACTIVE @goEnum(value: "go.probo.inc/probo/pkg/coredata.ProfileStateActive")
INACTIVE
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ProfileStateInactive")
}
type Vendor implements Node {
id: ID!
snapshotId: ID
name: String!
category: VendorCategory!
description: String
organization: Organization! @goField(forceResolver: true)
complianceReports(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorComplianceReportOrder
): VendorComplianceReportConnection! @goField(forceResolver: true)
businessAssociateAgreement: VendorBusinessAssociateAgreement
@goField(forceResolver: true)
dataPrivacyAgreement: VendorDataPrivacyAgreement
@goField(forceResolver: true)
contacts(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorContactOrder
): VendorContactConnection! @goField(forceResolver: true)
services(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorServiceOrder
): VendorServiceConnection! @goField(forceResolver: true)
riskAssessments(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorRiskAssessmentOrder
): VendorRiskAssessmentConnection! @goField(forceResolver: true)
businessOwner: Profile @goField(forceResolver: true)
securityOwner: Profile @goField(forceResolver: true)
statusPageUrl: String
termsOfServiceUrl: String
privacyPolicyUrl: String
serviceLevelAgreementUrl: String
dataProcessingAgreementUrl: String
businessAssociateAgreementUrl: String
subprocessorsListUrl: String
certifications: [String!]!
countries: [CountryCode!]!
securityPageUrl: String
trustPageUrl: String
headquarterAddress: String
legalName: String
websiteUrl: String
showOnTrustCenter: Boolean!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type VendorComplianceReport implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
reportDate: Datetime!
validUntil: Datetime
reportName: String!
file: File @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type VendorBusinessAssociateAgreement implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
validFrom: Datetime
validUntil: Datetime
fileName: String!
fileUrl: String! @goField(forceResolver: true)
fileSize: BigInt!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type VendorContact implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
fullName: String
email: EmailAddr
phone: String
role: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type VendorService implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
name: String!
description: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type VendorDataPrivacyAgreement implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
validFrom: Datetime
validUntil: Datetime
fileName: String!
fileUrl: String! @goField(forceResolver: true)
fileSize: BigInt!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Framework implements Node {
id: ID!
name: String!
description: String
organization: Organization! @goField(forceResolver: true)
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
lightLogoURL: String @goField(forceResolver: true)
darkLogoURL: String @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Control implements Node {
id: ID!
organization: Organization @goField(forceResolver: true)
sectionTitle: String!
name: String!
description: String
bestPractice: Boolean!
implemented: ControlImplementationState!
notImplementedJustification: String
regulatory: Boolean! @goField(forceResolver: true)
contractual: Boolean! @goField(forceResolver: true)
riskAssessment: Boolean! @goField(forceResolver: true)
framework: Framework! @goField(forceResolver: true)
measures(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: MeasureOrder
filter: MeasureFilter
): MeasureConnection! @goField(forceResolver: true)
documents(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentOrder
filter: DocumentFilter
): DocumentConnection! @goField(forceResolver: true)
audits(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: AuditOrder
): AuditConnection! @goField(forceResolver: true)
obligations(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ObligationOrder
filter: ObligationFilter
): ObligationConnection! @goField(forceResolver: true)
snapshots(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: SnapshotOrder
): SnapshotConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Measure implements Node {
id: ID!
category: String!
name: String!
description: String
state: MeasureState!
evidences(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: EvidenceOrder
): EvidenceConnection! @goField(forceResolver: true)
tasks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TaskOrder
): TaskConnection! @goField(forceResolver: true)
risks(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: RiskOrder
filter: RiskFilter
): RiskConnection! @goField(forceResolver: true)
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Task implements Node {
id: ID!
name: String!
description: String
state: TaskState!
timeEstimate: Duration
deadline: Datetime
assignedTo: Profile @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
measure: Measure @goField(forceResolver: true)
evidences(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: EvidenceOrder
): EvidenceConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Evidence implements Node {
id: ID!
size: Int!
state: EvidenceState!
type: EvidenceType!
file: File @goField(forceResolver: true)
url: String
description: String
task: Task @goField(forceResolver: true)
measure: Measure! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Document implements Node {
id: ID!
title: String!
description: String
documentType: DocumentType!
classification: DocumentClassification!
currentPublishedVersion: Int
trustCenterVisibility: TrustCenterVisibility!
approvers(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProfileOrder
): ProfileConnection! @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
versions(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentVersionOrder
filter: DocumentVersionFilter
): DocumentVersionConnection! @goField(forceResolver: true)
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
status: DocumentStatus!
archivedAt: Datetime
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type SignableDocument
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.SignableDocument"
) {
id: ID!
title: String!
description: String
documentType: DocumentType!
classification: DocumentClassification!
signed: Boolean! @goField(forceResolver: true)
versions(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentVersionOrder
filter: DocumentVersionFilter
): DocumentVersionConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
}
type Meeting implements Node {
id: ID!
name: String!
date: Datetime!
minutes: String
attendees: [Profile!]! @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
enum WebhookEventType
@goModel(model: "go.probo.inc/probo/pkg/coredata.WebhookEventType") {
MEETING_CREATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeMeetingCreated")
MEETING_UPDATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeMeetingUpdated")
MEETING_DELETED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeMeetingDeleted")
VENDOR_CREATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeVendorCreated")
VENDOR_UPDATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeVendorUpdated")
VENDOR_DELETED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeVendorDeleted")
USER_CREATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeUserCreated")
USER_UPDATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeUserUpdated")
USER_DELETED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeUserDeleted")
OBLIGATION_CREATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeObligationCreated")
OBLIGATION_UPDATED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeObligationUpdated")
OBLIGATION_DELETED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventTypeObligationDeleted")
}
type WebhookSubscription implements Node {
id: ID!
organization: Organization @goField(forceResolver: true)
endpointUrl: String!
signingSecret: String! @goField(forceResolver: true)
selectedEvents: [WebhookEventType!]!
createdAt: Datetime!
updatedAt: Datetime!
events(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: WebhookEventOrder
): WebhookEventConnection! @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type WebhookSubscriptionConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.WebhookSubscriptionConnection"
) {
edges: [WebhookSubscriptionEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type WebhookSubscriptionEdge {
cursor: CursorKey!
node: WebhookSubscription!
}
enum WebhookEventStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.WebhookEventStatus") {
PENDING
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventStatusPending")
SUCCEEDED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventStatusSucceeded")
FAILED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.WebhookEventStatusFailed")
}
enum WebhookEventOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.WebhookEventOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.WebhookEventOrderFieldCreatedAt"
)
}
input WebhookEventOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.WebhookEventOrderBy"
) {
field: WebhookEventOrderField!
direction: OrderDirection!
}
type WebhookEvent implements Node {
id: ID!
webhookSubscriptionId: ID!
status: WebhookEventStatus!
response: String
createdAt: Datetime!
}
type WebhookEventConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.WebhookEventConnection"
) {
edges: [WebhookEventEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type WebhookEventEdge {
cursor: CursorKey!
node: WebhookEvent!
}
type StateOfApplicability implements Node {
id: ID!
name: String!
sourceId: ID
snapshotId: ID
organization: Organization @goField(forceResolver: true)
owner: Profile! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
applicabilityStatements(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ApplicabilityStatementOrder
): ApplicabilityStatementConnection! @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type ApplicabilityStatementConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ApplicabilityStatementConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ApplicabilityStatementEdge!]!
pageInfo: PageInfo!
}
type ApplicabilityStatementEdge {
cursor: CursorKey!
node: ApplicabilityStatement!
}
type ApplicabilityStatement implements Node {
id: ID!
stateOfApplicability: StateOfApplicability! @goField(forceResolver: true)
control: Control! @goField(forceResolver: true)
applicability: Boolean!
justification: String!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Risk implements Node {
id: ID!
snapshotId: ID
name: String!
description: String
category: String!
treatment: RiskTreatment!
inherentLikelihood: Int!
inherentImpact: Int!
inherentRiskScore: Int!
residualLikelihood: Int!
residualImpact: Int!
residualRiskScore: Int!
note: String!
owner: Profile @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
measures(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: MeasureOrder
filter: MeasureFilter
): MeasureConnection! @goField(forceResolver: true)
documents(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentOrder
filter: DocumentFilter
): DocumentConnection! @goField(forceResolver: true)
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
obligations(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ObligationOrder
filter: ObligationFilter
): ObligationConnection! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Audit implements Node {
id: ID!
name: String
organization: Organization @goField(forceResolver: true)
framework: Framework @goField(forceResolver: true)
validFrom: Datetime
validUntil: Datetime
report: Report @goField(forceResolver: true)
reportUrl: String @goField(forceResolver: true)
state: AuditState!
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection @goField(forceResolver: true)
findings(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: FindingOrder
filter: FindingFilter = { snapshotId: null }
): FindingConnection @goField(forceResolver: true)
trustCenterVisibility: TrustCenterVisibility!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Finding implements Node {
id: ID!
snapshotId: ID
organization: Organization @goField(forceResolver: true)
kind: FindingKind!
referenceId: String!
description: String
source: String
audits(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: AuditOrder
): AuditConnection @goField(forceResolver: true)
identifiedOn: Datetime
rootCause: String
correctiveAction: String
owner: Profile @goField(forceResolver: true)
dueDate: Datetime
status: FindingStatus!
priority: FindingPriority!
risk: Risk @goField(forceResolver: true)
effectivenessCheck: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Obligation implements Node {
id: ID!
snapshotId: ID
sourceId: ID
organization: Organization! @goField(forceResolver: true)
area: String
source: String
requirement: String
actionsToBeImplemented: String
regulator: String
owner: Profile! @goField(forceResolver: true)
lastReviewDate: Datetime
dueDate: Datetime
status: ObligationStatus!
type: ObligationType!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type RightsRequest implements Node {
id: ID!
organization: Organization! @goField(forceResolver: true)
requestType: RightsRequestType!
requestState: RightsRequestState!
dataSubject: String
contact: String
details: String
deadline: Datetime
actionTaken: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type ProcessingActivity implements Node {
id: ID!
snapshotId: ID
sourceId: ID
organization: Organization! @goField(forceResolver: true)
name: String!
purpose: String
dataSubjectCategory: String
personalDataCategory: String
specialOrCriminalData: ProcessingActivitySpecialOrCriminalDatum!
consentEvidenceLink: String
lawfulBasis: ProcessingActivityLawfulBasis!
recipients: String
location: String
internationalTransfers: Boolean!
transferSafeguards: ProcessingActivityTransferSafeguard
retentionPeriod: String
securityMeasures: String
dataProtectionImpactAssessmentNeeded: ProcessingActivityDataProtectionImpactAssessment!
transferImpactAssessmentNeeded: ProcessingActivityTransferImpactAssessment!
lastReviewDate: Datetime
nextReviewDate: Datetime
role: ProcessingActivityRole!
dataProtectionOfficer: Profile @goField(forceResolver: true)
vendors(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorOrder
): VendorConnection! @goField(forceResolver: true)
dataProtectionImpactAssessment: DataProtectionImpactAssessment
@goField(forceResolver: true)
transferImpactAssessment: TransferImpactAssessment
@goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type DataProtectionImpactAssessment implements Node {
id: ID!
processingActivity: ProcessingActivity! @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
description: String
necessityAndProportionality: String
potentialRisk: String
mitigations: String
residualRisk: DataProtectionImpactAssessmentResidualRisk
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type TransferImpactAssessment implements Node {
id: ID!
processingActivity: ProcessingActivity! @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
dataSubjects: String
legalMechanism: String
transfer: String
localLawRisk: String
supplementaryMeasures: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Snapshot implements Node {
id: ID!
organization: Organization! @goField(forceResolver: true)
name: String!
description: String
type: SnapshotsType!
controls(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ControlOrder
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
createdAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Report implements Node {
id: ID!
objectKey: String!
mimeType: String!
filename: String!
size: Int!
downloadUrl: String @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
audit: Audit @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type Viewer {
id: ID!
signableDocuments(
organizationId: ID!
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentOrder
): SignableDocumentConnection! @goField(forceResolver: true)
signableDocument(id: ID!): SignableDocument @goField(forceResolver: true)
}
type TrustCenterConnection {
edges: [TrustCenterEdge!]!
pageInfo: PageInfo!
}
type TrustCenterEdge {
cursor: CursorKey!
node: TrustCenter!
}
type TrustCenterAccess implements Node {
id: ID!
ndaSignature: ElectronicSignature @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
pendingRequestCount: Int! @goField(forceResolver: true)
activeCount: Int! @goField(forceResolver: true)
organizationId: ID!
identityID: ID!
profile: Profile! @goField(forceResolver: true)
availableDocumentAccesses(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: TrustCenterDocumentAccessOrder
): TrustCenterDocumentAccessConnection! @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type TrustCenterDocumentAccess
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterDocumentAccess"
) {
id: ID!
status: TrustCenterDocumentAccessStatus!
document: Document @goField(forceResolver: true)
report: Report @goField(forceResolver: true)
trustCenterFile: TrustCenterFile @goField(forceResolver: true)
}
type TrustCenterDocumentAccessConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterDocumentAccessConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [TrustCenterDocumentAccessEdge!]!
pageInfo: PageInfo!
}
type TrustCenterDocumentAccessEdge {
cursor: CursorKey!
node: TrustCenterDocumentAccess!
}
type TrustCenterAccessConnection {
edges: [TrustCenterAccessEdge!]!
pageInfo: PageInfo!
}
type TrustCenterAccessEdge {
cursor: CursorKey!
node: TrustCenterAccess!
}
type TrustCenterReference implements Node {
id: ID!
name: String!
description: String
websiteUrl: String!
logoUrl: String! @goField(forceResolver: true)
rank: Int!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type TrustCenterReferenceConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterReferenceConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [TrustCenterReferenceEdge!]!
pageInfo: PageInfo!
}
type TrustCenterReferenceEdge {
cursor: CursorKey!
node: TrustCenterReference!
}
type ComplianceFramework implements Node
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ComplianceFramework"
) {
id: ID!
framework: Framework! @goField(forceResolver: true)
rank: Int!
visibility: ComplianceFrameworkVisibility!
createdAt: Datetime!
updatedAt: Datetime!
}
type ComplianceFrameworkConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ComplianceFrameworkConnection"
) {
edges: [ComplianceFrameworkEdge!]!
pageInfo: PageInfo!
}
type ComplianceFrameworkEdge {
cursor: CursorKey!
node: ComplianceFramework!
}
type ComplianceExternalURL implements Node {
id: ID!
name: String!
url: String!
rank: Int!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type ComplianceExternalURLConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ComplianceExternalURLConnection"
) {
edges: [ComplianceExternalURLEdge!]!
pageInfo: PageInfo!
}
type ComplianceExternalURLEdge {
cursor: CursorKey!
node: ComplianceExternalURL!
}
type TrustCenterFile implements Node {
id: ID!
name: String!
category: String!
fileUrl: String! @goField(forceResolver: true)
trustCenterVisibility: TrustCenterVisibility!
createdAt: Datetime!
updatedAt: Datetime!
organization: Organization! @goField(forceResolver: true)
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type TrustCenterFileConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TrustCenterFileConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [TrustCenterFileEdge!]!
pageInfo: PageInfo!
}
type TrustCenterFileEdge {
cursor: CursorKey!
node: TrustCenterFile!
}
type ProfileConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ProfileConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ProfileEdge!]!
pageInfo: PageInfo!
}
type ProfileEdge {
cursor: CursorKey!
node: Profile!
}
type VendorConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [VendorEdge!]!
pageInfo: PageInfo!
}
type VendorEdge {
cursor: CursorKey!
node: Vendor!
}
type FrameworkConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FrameworkConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [FrameworkEdge!]!
pageInfo: PageInfo!
}
type FrameworkEdge {
cursor: CursorKey!
node: Framework!
}
type ControlConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ControlConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ControlEdge!]!
pageInfo: PageInfo!
}
type ControlEdge {
cursor: CursorKey!
node: Control!
}
type MeasureConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MeasureConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [MeasureEdge!]!
pageInfo: PageInfo!
}
type MeasureEdge {
cursor: CursorKey!
node: Measure!
}
type TaskConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TaskConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [TaskEdge!]!
pageInfo: PageInfo!
}
type TaskEdge {
cursor: CursorKey!
node: Task!
}
type EvidenceConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.EvidenceConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [EvidenceEdge!]!
pageInfo: PageInfo!
}
type EvidenceEdge {
cursor: CursorKey!
node: Evidence!
}
type SignableDocumentConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.SignableDocumentConnection"
) {
edges: [SignableDocumentEdge!]!
pageInfo: PageInfo!
}
type SignableDocumentEdge
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.SignableDocumentEdge"
) {
cursor: CursorKey!
node: SignableDocument!
}
type DocumentConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DocumentConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [DocumentEdge!]!
pageInfo: PageInfo!
}
type DocumentEdge {
cursor: CursorKey!
node: Document!
}
type MeetingConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.MeetingConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [MeetingEdge!]!
pageInfo: PageInfo!
}
type MeetingEdge {
cursor: CursorKey!
node: Meeting!
}
type StateOfApplicabilityConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.StateOfApplicabilityConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [StateOfApplicabilityEdge!]!
pageInfo: PageInfo!
}
type StateOfApplicabilityEdge {
cursor: CursorKey!
node: StateOfApplicability!
}
type RiskConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.RiskConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [RiskEdge!]!
pageInfo: PageInfo!
}
type RiskEdge {
cursor: CursorKey!
node: Risk!
}
type VendorComplianceReportConnection {
edges: [VendorComplianceReportEdge!]!
pageInfo: PageInfo!
}
type VendorComplianceReportEdge {
cursor: CursorKey!
node: VendorComplianceReport!
}
type VendorContactConnection {
edges: [VendorContactEdge!]!
pageInfo: PageInfo!
}
type VendorContactEdge {
cursor: CursorKey!
node: VendorContact!
}
type VendorServiceConnection {
edges: [VendorServiceEdge!]!
pageInfo: PageInfo!
}
type VendorServiceEdge {
cursor: CursorKey!
node: VendorService!
}
type VendorRiskAssessmentConnection {
edges: [VendorRiskAssessmentEdge!]!
pageInfo: PageInfo!
}
type VendorRiskAssessmentEdge {
cursor: CursorKey!
node: VendorRiskAssessment!
}
type DocumentVersionConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DocumentVersionConnection"
) {
edges: [DocumentVersionEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type DocumentVersionEdge {
cursor: CursorKey!
node: DocumentVersion!
}
type DatumConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DatumConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [DatumEdge!]!
pageInfo: PageInfo!
}
type DatumEdge {
cursor: CursorKey!
node: Datum!
}
type AuditConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [AuditEdge!]!
pageInfo: PageInfo!
}
type AuditEdge {
cursor: CursorKey!
node: Audit!
}
type FindingConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FindingConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [FindingEdge!]!
pageInfo: PageInfo!
}
type FindingEdge
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FindingEdge"
) {
cursor: CursorKey!
node: Finding!
}
type ObligationConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ObligationConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ObligationEdge!]!
pageInfo: PageInfo!
}
type ObligationEdge {
cursor: CursorKey!
node: Obligation!
}
type RightsRequestConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.RightsRequestConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [RightsRequestEdge!]!
pageInfo: PageInfo!
}
type RightsRequestEdge {
cursor: CursorKey!
node: RightsRequest!
}
type ProcessingActivityConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ProcessingActivityConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ProcessingActivityEdge!]!
pageInfo: PageInfo!
}
type ProcessingActivityEdge {
cursor: CursorKey!
node: ProcessingActivity!
}
type DataProtectionImpactAssessmentConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DataProtectionImpactAssessmentConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [DataProtectionImpactAssessmentEdge!]!
pageInfo: PageInfo!
}
type DataProtectionImpactAssessmentEdge {
cursor: CursorKey!
node: DataProtectionImpactAssessment!
}
type TransferImpactAssessmentConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.TransferImpactAssessmentConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [TransferImpactAssessmentEdge!]!
pageInfo: PageInfo!
}
type TransferImpactAssessmentEdge {
cursor: CursorKey!
node: TransferImpactAssessment!
}
type SnapshotConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.SnapshotConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [SnapshotEdge!]!
pageInfo: PageInfo!
}
type SnapshotEdge {
cursor: CursorKey!
node: Snapshot!
}
type File {
id: ID!
mimeType: String!
fileName: String!
size: BigInt!
downloadUrl: String! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
}
# Root Types
type Query {
node(id: ID!): Node!
viewer: Viewer!
}
type Mutation {
updateOrganizationContext(
input: UpdateOrganizationContextInput!
): UpdateOrganizationContextPayload!
updateTrustCenter(input: UpdateTrustCenterInput!): UpdateTrustCenterPayload!
uploadTrustCenterNDA(
input: UploadTrustCenterNDAInput!
): UploadTrustCenterNDAPayload!
deleteTrustCenterNDA(
input: DeleteTrustCenterNDAInput!
): DeleteTrustCenterNDAPayload!
updateTrustCenterBrand(
input: UpdateTrustCenterBrandInput!
): UpdateTrustCenterBrandPayload!
# Trust Center Access CRUD mutations
updateTrustCenterAccess(
input: UpdateTrustCenterAccessInput!
): UpdateTrustCenterAccessPayload!
deleteTrustCenterAccess(
input: DeleteTrustCenterAccessInput!
): DeleteTrustCenterAccessPayload!
# Compliance News mutations
createMailingListUpdate(
input: CreateMailingListUpdateInput!
): CreateMailingListUpdatePayload!
updateMailingListUpdate(
input: UpdateMailingListUpdateInput!
): UpdateMailingListUpdatePayload!
sendMailingListUpdate(
input: SendMailingListUpdateInput!
): SendMailingListUpdatePayload!
deleteMailingListUpdate(
input: DeleteMailingListUpdateInput!
): DeleteMailingListUpdatePayload!
# Mailing List mutations
updateMailingList(
input: UpdateMailingListInput!
): UpdateMailingListPayload!
# Mailing List Subscriber mutations
createMailingListSubscriber(
input: CreateMailingListSubscriberInput!
): CreateMailingListSubscriberPayload!
deleteMailingListSubscriber(
input: DeleteMailingListSubscriberInput!
): DeleteMailingListSubscriberPayload!
# Trust Center Reference mutations
createTrustCenterReference(
input: CreateTrustCenterReferenceInput!
): CreateTrustCenterReferencePayload!
updateTrustCenterReference(
input: UpdateTrustCenterReferenceInput!
): UpdateTrustCenterReferencePayload!
deleteTrustCenterReference(
input: DeleteTrustCenterReferenceInput!
): DeleteTrustCenterReferencePayload!
# Compliance Framework mutations
createComplianceFramework(
input: CreateComplianceFrameworkInput!
): CreateComplianceFrameworkPayload!
updateComplianceFramework(
input: UpdateComplianceFrameworkInput!
): UpdateComplianceFrameworkPayload!
deleteComplianceFramework(
input: DeleteComplianceFrameworkInput!
): DeleteComplianceFrameworkPayload!
createComplianceExternalURL(
input: CreateComplianceExternalURLInput!
): CreateComplianceExternalURLPayload!
updateComplianceExternalURL(
input: UpdateComplianceExternalURLInput!
): UpdateComplianceExternalURLPayload!
deleteComplianceExternalURL(
input: DeleteComplianceExternalURLInput!
): DeleteComplianceExternalURLPayload!
# Trust Center File mutations
createTrustCenterFile(
input: CreateTrustCenterFileInput!
): CreateTrustCenterFilePayload!
updateTrustCenterFile(
input: UpdateTrustCenterFileInput!
): UpdateTrustCenterFilePayload!
getTrustCenterFile(
input: GetTrustCenterFileInput!
): GetTrustCenterFilePayload!
deleteTrustCenterFile(
input: DeleteTrustCenterFileInput!
): DeleteTrustCenterFilePayload!
# Vendor mutations
createVendor(input: CreateVendorInput!): CreateVendorPayload!
updateVendor(input: UpdateVendorInput!): UpdateVendorPayload!
deleteVendor(input: DeleteVendorInput!): DeleteVendorPayload!
# Vendor Contact mutations
createVendorContact(
input: CreateVendorContactInput!
): CreateVendorContactPayload!
updateVendorContact(
input: UpdateVendorContactInput!
): UpdateVendorContactPayload!
deleteVendorContact(
input: DeleteVendorContactInput!
): DeleteVendorContactPayload!
# Vendor Service mutations
createVendorService(
input: CreateVendorServiceInput!
): CreateVendorServicePayload!
updateVendorService(
input: UpdateVendorServiceInput!
): UpdateVendorServicePayload!
deleteVendorService(
input: DeleteVendorServiceInput!
): DeleteVendorServicePayload!
# Framework mutations
createFramework(input: CreateFrameworkInput!): CreateFrameworkPayload!
updateFramework(input: UpdateFrameworkInput!): UpdateFrameworkPayload!
importFramework(input: ImportFrameworkInput!): ImportFrameworkPayload!
deleteFramework(input: DeleteFrameworkInput!): DeleteFrameworkPayload!
exportFramework(input: ExportFrameworkInput!): ExportFrameworkPayload!
# Control mutations
createControl(input: CreateControlInput!): CreateControlPayload!
updateControl(input: UpdateControlInput!): UpdateControlPayload!
deleteControl(input: DeleteControlInput!): DeleteControlPayload!
# Measure mutations
createMeasure(input: CreateMeasureInput!): CreateMeasurePayload!
updateMeasure(input: UpdateMeasureInput!): UpdateMeasurePayload!
importMeasure(input: ImportMeasureInput!): ImportMeasurePayload!
deleteMeasure(input: DeleteMeasureInput!): DeleteMeasurePayload!
# Control mutations
createControlMeasureMapping(
input: CreateControlMeasureMappingInput!
): CreateControlMeasureMappingPayload!
createControlDocumentMapping(
input: CreateControlDocumentMappingInput!
): CreateControlDocumentMappingPayload!
deleteControlMeasureMapping(
input: DeleteControlMeasureMappingInput!
): DeleteControlMeasureMappingPayload!
deleteControlDocumentMapping(
input: DeleteControlDocumentMappingInput!
): DeleteControlDocumentMappingPayload!
createApplicabilityStatement(
input: CreateApplicabilityStatementInput!
): CreateApplicabilityStatementPayload!
updateApplicabilityStatement(
input: UpdateApplicabilityStatementInput!
): UpdateApplicabilityStatementPayload!
deleteApplicabilityStatement(
input: DeleteApplicabilityStatementInput!
): DeleteApplicabilityStatementPayload!
createControlAuditMapping(
input: CreateControlAuditMappingInput!
): CreateControlAuditMappingPayload
deleteControlAuditMapping(
input: DeleteControlAuditMappingInput!
): DeleteControlAuditMappingPayload
createControlObligationMapping(
input: CreateControlObligationMappingInput!
): CreateControlObligationMappingPayload!
deleteControlObligationMapping(
input: DeleteControlObligationMappingInput!
): DeleteControlObligationMappingPayload!
createControlSnapshotMapping(
input: CreateControlSnapshotMappingInput!
): CreateControlSnapshotMappingPayload!
deleteControlSnapshotMapping(
input: DeleteControlSnapshotMappingInput!
): DeleteControlSnapshotMappingPayload!
# Task mutations
createTask(input: CreateTaskInput!): CreateTaskPayload!
updateTask(input: UpdateTaskInput!): UpdateTaskPayload!
deleteTask(input: DeleteTaskInput!): DeleteTaskPayload!
# Risk mutations
createRisk(input: CreateRiskInput!): CreateRiskPayload!
updateRisk(input: UpdateRiskInput!): UpdateRiskPayload!
deleteRisk(input: DeleteRiskInput!): DeleteRiskPayload!
createRiskMeasureMapping(
input: CreateRiskMeasureMappingInput!
): CreateRiskMeasureMappingPayload!
deleteRiskMeasureMapping(
input: DeleteRiskMeasureMappingInput!
): DeleteRiskMeasureMappingPayload!
createRiskDocumentMapping(
input: CreateRiskDocumentMappingInput!
): CreateRiskDocumentMappingPayload!
deleteRiskDocumentMapping(
input: DeleteRiskDocumentMappingInput!
): DeleteRiskDocumentMappingPayload!
createRiskObligationMapping(
input: CreateRiskObligationMappingInput!
): CreateRiskObligationMappingPayload!
deleteRiskObligationMapping(
input: DeleteRiskObligationMappingInput!
): DeleteRiskObligationMappingPayload!
# Evidence mutations
deleteEvidence(input: DeleteEvidenceInput!): DeleteEvidencePayload!
uploadMeasureEvidence(
input: UploadMeasureEvidenceInput!
): UploadMeasureEvidencePayload!
# Vendor Compliance Report mutations
uploadVendorComplianceReport(
input: UploadVendorComplianceReportInput!
): UploadVendorComplianceReportPayload!
deleteVendorComplianceReport(
input: DeleteVendorComplianceReportInput!
): DeleteVendorComplianceReportPayload!
# Vendor Business Associate Agreement mutations
uploadVendorBusinessAssociateAgreement(
input: UploadVendorBusinessAssociateAgreementInput!
): UploadVendorBusinessAssociateAgreementPayload!
updateVendorBusinessAssociateAgreement(
input: UpdateVendorBusinessAssociateAgreementInput!
): UpdateVendorBusinessAssociateAgreementPayload!
deleteVendorBusinessAssociateAgreement(
input: DeleteVendorBusinessAssociateAgreementInput!
): DeleteVendorBusinessAssociateAgreementPayload!
# Vendor Data Privacy Agreement mutations
uploadVendorDataPrivacyAgreement(
input: UploadVendorDataPrivacyAgreementInput!
): UploadVendorDataPrivacyAgreementPayload!
updateVendorDataPrivacyAgreement(
input: UpdateVendorDataPrivacyAgreementInput!
): UpdateVendorDataPrivacyAgreementPayload!
deleteVendorDataPrivacyAgreement(
input: DeleteVendorDataPrivacyAgreementInput!
): DeleteVendorDataPrivacyAgreementPayload!
# Document mutations
createDocument(input: CreateDocumentInput!): CreateDocumentPayload!
updateDocument(input: UpdateDocumentInput!): UpdateDocumentPayload!
archiveDocument(input: ArchiveDocumentInput!): ArchiveDocumentPayload!
unarchiveDocument(input: UnarchiveDocumentInput!): UnarchiveDocumentPayload!
deleteDocument(input: DeleteDocumentInput!): DeleteDocumentPayload!
# Meeting mutations
createMeeting(input: CreateMeetingInput!): CreateMeetingPayload!
updateMeeting(input: UpdateMeetingInput!): UpdateMeetingPayload!
deleteMeeting(input: DeleteMeetingInput!): DeleteMeetingPayload!
# WebhookSubscription mutations
createWebhookSubscription(
input: CreateWebhookSubscriptionInput!
): CreateWebhookSubscriptionPayload!
updateWebhookSubscription(
input: UpdateWebhookSubscriptionInput!
): UpdateWebhookSubscriptionPayload!
deleteWebhookSubscription(
input: DeleteWebhookSubscriptionInput!
): DeleteWebhookSubscriptionPayload!
# StateOfApplicability mutations
createStateOfApplicability(
input: CreateStateOfApplicabilityInput!
): CreateStateOfApplicabilityPayload!
updateStateOfApplicability(
input: UpdateStateOfApplicabilityInput!
): UpdateStateOfApplicabilityPayload!
deleteStateOfApplicability(
input: DeleteStateOfApplicabilityInput!
): DeleteStateOfApplicabilityPayload!
exportStateOfApplicabilityPDF(
input: ExportStateOfApplicabilityPDFInput!
): ExportStateOfApplicabilityPDFPayload!
publishDocumentVersion(
input: PublishDocumentVersionInput!
): PublishDocumentVersionPayload!
bulkPublishDocumentVersions(
input: BulkPublishDocumentVersionsInput!
): BulkPublishDocumentVersionsPayload!
bulkDeleteDocuments(
input: BulkDeleteDocumentsInput!
): BulkDeleteDocumentsPayload!
bulkArchiveDocuments(
input: BulkArchiveDocumentsInput!
): BulkArchiveDocumentsPayload!
bulkUnarchiveDocuments(
input: BulkUnarchiveDocumentsInput!
): BulkUnarchiveDocumentsPayload!
bulkExportDocuments(
input: BulkExportDocumentsInput!
): BulkExportDocumentsPayload!
generateDocumentChangelog(
input: GenerateDocumentChangelogInput!
): GenerateDocumentChangelogPayload!
createDraftDocumentVersion(
input: CreateDraftDocumentVersionInput!
): CreateDraftDocumentVersionPayload!
deleteDraftDocumentVersion(
input: DeleteDraftDocumentVersionInput!
): DeleteDraftDocumentVersionPayload!
updateDocumentVersion(
input: UpdateDocumentVersionInput!
): UpdateDocumentVersionPayload!
requestSignature(input: RequestSignatureInput!): RequestSignaturePayload!
bulkRequestSignatures(
input: BulkRequestSignaturesInput!
): BulkRequestSignaturesPayload!
sendSigningNotifications(
input: SendSigningNotificationsInput!
): SendSigningNotificationsPayload!
cancelSignatureRequest(
input: CancelSignatureRequestInput!
): CancelSignatureRequestPayload!
signDocument(input: SignDocumentInput!): SignDocumentPayload!
exportDocumentVersionPDF(
input: ExportDocumentVersionPDFInput!
): ExportDocumentVersionPDFPayload!
exportSignableVersionDocumentPDF(
input: ExportSignableDocumentVersionPDFInput!
): ExportSignableDocumentVersionPDFPayload!
exportProcessingActivitiesPDF(
input: ExportProcessingActivitiesPDFInput!
): ExportProcessingActivitiesPDFPayload!
exportDataProtectionImpactAssessmentsPDF(
input: ExportDataProtectionImpactAssessmentsPDFInput!
): ExportDataProtectionImpactAssessmentsPDFPayload!
exportTransferImpactAssessmentsPDF(
input: ExportTransferImpactAssessmentsPDFInput!
): ExportTransferImpactAssessmentsPDFPayload!
createVendorRiskAssessment(
input: CreateVendorRiskAssessmentInput!
): CreateVendorRiskAssessmentPayload!
assessVendor(input: AssessVendorInput!): AssessVendorPayload!
createAsset(input: CreateAssetInput!): CreateAssetPayload!
updateAsset(input: UpdateAssetInput!): UpdateAssetPayload!
deleteAsset(input: DeleteAssetInput!): DeleteAssetPayload!
createDatum(input: CreateDatumInput!): CreateDatumPayload!
updateDatum(input: UpdateDatumInput!): UpdateDatumPayload!
deleteDatum(input: DeleteDatumInput!): DeleteDatumPayload!
createAudit(input: CreateAuditInput!): CreateAuditPayload
updateAudit(input: UpdateAuditInput!): UpdateAuditPayload
deleteAudit(input: DeleteAuditInput!): DeleteAuditPayload
uploadAuditReport(input: UploadAuditReportInput!): UploadAuditReportPayload
deleteAuditReport(input: DeleteAuditReportInput!): DeleteAuditReportPayload
# Finding mutations
createFinding(input: CreateFindingInput!): CreateFindingPayload
updateFinding(input: UpdateFindingInput!): UpdateFindingPayload
deleteFinding(input: DeleteFindingInput!): DeleteFindingPayload
createFindingAuditMapping(
input: CreateFindingAuditMappingInput!
): CreateFindingAuditMappingPayload
deleteFindingAuditMapping(
input: DeleteFindingAuditMappingInput!
): DeleteFindingAuditMappingPayload
# Obligation mutations
createObligation(input: CreateObligationInput!): CreateObligationPayload!
updateObligation(input: UpdateObligationInput!): UpdateObligationPayload!
deleteObligation(input: DeleteObligationInput!): DeleteObligationPayload!
# Rights Request mutations
createRightsRequest(
input: CreateRightsRequestInput!
): CreateRightsRequestPayload!
updateRightsRequest(
input: UpdateRightsRequestInput!
): UpdateRightsRequestPayload!
deleteRightsRequest(
input: DeleteRightsRequestInput!
): DeleteRightsRequestPayload!
# Processing Activity mutations
createProcessingActivity(
input: CreateProcessingActivityInput!
): CreateProcessingActivityPayload!
updateProcessingActivity(
input: UpdateProcessingActivityInput!
): UpdateProcessingActivityPayload!
deleteProcessingActivity(
input: DeleteProcessingActivityInput!
): DeleteProcessingActivityPayload!
# Data Protection Impact Assessment mutations
createDataProtectionImpactAssessment(
input: CreateDataProtectionImpactAssessmentInput!
): CreateDataProtectionImpactAssessmentPayload!
updateDataProtectionImpactAssessment(
input: UpdateDataProtectionImpactAssessmentInput!
): UpdateDataProtectionImpactAssessmentPayload!
deleteDataProtectionImpactAssessment(
input: DeleteDataProtectionImpactAssessmentInput!
): DeleteDataProtectionImpactAssessmentPayload!
# Transfer Impact Assessment mutations
createTransferImpactAssessment(
input: CreateTransferImpactAssessmentInput!
): CreateTransferImpactAssessmentPayload!
updateTransferImpactAssessment(
input: UpdateTransferImpactAssessmentInput!
): UpdateTransferImpactAssessmentPayload!
deleteTransferImpactAssessment(
input: DeleteTransferImpactAssessmentInput!
): DeleteTransferImpactAssessmentPayload!
# Snapshot mutations
createSnapshot(input: CreateSnapshotInput!): CreateSnapshotPayload!
deleteSnapshot(input: DeleteSnapshotInput!): DeleteSnapshotPayload!
# Custom Domain mutations
createCustomDomain(
input: CreateCustomDomainInput!
): CreateCustomDomainPayload!
deleteCustomDomain(
input: DeleteCustomDomainInput!
): DeleteCustomDomainPayload!
}
# Input Types
input UpdateOrganizationContextInput {
organizationId: ID!
product: String @goField(omittable: true)
architecture: String @goField(omittable: true)
team: String @goField(omittable: true)
processes: String @goField(omittable: true)
customers: String @goField(omittable: true)
}
input UpdateTrustCenterInput {
trustCenterId: ID!
active: Boolean
}
input UploadTrustCenterNDAInput {
trustCenterId: ID!
fileName: String!
file: Upload!
}
input DeleteTrustCenterNDAInput {
trustCenterId: ID!
}
input UpdateTrustCenterBrandInput {
trustCenterId: ID!
logoFile: Upload @goField(omittable: true)
darkLogoFile: Upload @goField(omittable: true)
}
input TrustCenterDocumentAccessInput {
id: ID!
status: TrustCenterDocumentAccessStatus!
}
input UpdateTrustCenterAccessInput {
id: ID!
name: String
state: TrustCenterAccessState
documents: [TrustCenterDocumentAccessInput!]
reports: [TrustCenterDocumentAccessInput!]
trustCenterFiles: [TrustCenterDocumentAccessInput!]
}
input DeleteTrustCenterAccessInput {
id: ID!
}
input UpdateMailingListInput {
id: ID!
replyTo: EmailAddr
}
type UpdateMailingListPayload {
mailingList: MailingList!
}
input CreateMailingListUpdateInput {
mailingListId: ID!
title: String!
body: String!
}
input UpdateMailingListUpdateInput {
id: ID!
title: String
body: String
}
input SendMailingListUpdateInput {
id: ID!
}
input DeleteMailingListUpdateInput {
id: ID!
}
input CreateMailingListSubscriberInput {
mailingListId: ID!
fullName: String!
email: EmailAddr!
confirmed: Boolean
}
input DeleteMailingListSubscriberInput {
id: ID!
}
input CreateTrustCenterReferenceInput {
trustCenterId: ID!
name: String!
description: String
websiteUrl: String!
logoFile: Upload!
}
input UpdateTrustCenterReferenceInput {
id: ID!
name: String
description: String @goField(omittable: true)
websiteUrl: String
logoFile: Upload
rank: Int
}
input DeleteTrustCenterReferenceInput {
id: ID!
}
input CreateComplianceFrameworkInput {
trustCenterId: ID!
frameworkId: ID!
}
input UpdateComplianceFrameworkInput {
id: ID!
rank: Int!
}
input DeleteComplianceFrameworkInput {
id: ID!
}
input CreateComplianceExternalURLInput {
trustCenterId: ID!
name: String!
url: String!
}
input UpdateComplianceExternalURLInput {
id: ID!
name: String!
url: String!
rank: Int
}
input DeleteComplianceExternalURLInput {
id: ID!
}
input CreateTrustCenterFileInput {
organizationId: ID!
name: String!
category: String!
file: Upload!
trustCenterVisibility: TrustCenterVisibility!
}
input UpdateTrustCenterFileInput {
id: ID!
name: String
category: String
trustCenterVisibility: TrustCenterVisibility
}
input GetTrustCenterFileInput {
id: ID!
}
input DeleteTrustCenterFileInput {
id: ID!
}
input CreateVendorInput {
organizationId: ID!
name: String!
description: String
headquarterAddress: String
legalName: String
websiteUrl: String
privacyPolicyUrl: String
category: VendorCategory
serviceLevelAgreementUrl: String
dataProcessingAgreementUrl: String
businessAssociateAgreementUrl: String
subprocessorsListUrl: String
certifications: [String!]
countries: [CountryCode!]
securityPageUrl: String
trustPageUrl: String
statusPageUrl: String
termsOfServiceUrl: String
businessOwnerId: ID
securityOwnerId: ID
}
input UpdateVendorInput {
id: ID!
name: String
description: String @goField(omittable: true)
statusPageUrl: String @goField(omittable: true)
termsOfServiceUrl: String @goField(omittable: true)
privacyPolicyUrl: String @goField(omittable: true)
serviceLevelAgreementUrl: String @goField(omittable: true)
dataProcessingAgreementUrl: String @goField(omittable: true)
businessAssociateAgreementUrl: String @goField(omittable: true)
subprocessorsListUrl: String @goField(omittable: true)
websiteUrl: String @goField(omittable: true)
legalName: String @goField(omittable: true)
headquarterAddress: String @goField(omittable: true)
category: VendorCategory
certifications: [String!]
countries: [CountryCode!]
securityPageUrl: String @goField(omittable: true)
trustPageUrl: String @goField(omittable: true)
businessOwnerId: ID @goField(omittable: true)
securityOwnerId: ID @goField(omittable: true)
showOnTrustCenter: Boolean
}
input DeleteVendorInput {
vendorId: ID!
}
input CreateVendorContactInput {
vendorId: ID!
fullName: String
email: EmailAddr
phone: String
role: String
}
input UpdateVendorContactInput {
id: ID!
fullName: String @goField(omittable: true)
email: EmailAddr @goField(omittable: true)
phone: String @goField(omittable: true)
role: String @goField(omittable: true)
}
input DeleteVendorContactInput {
vendorContactId: ID!
}
input CreateVendorServiceInput {
vendorId: ID!
name: String!
description: String
url: String
type: String
}
input UpdateVendorServiceInput {
id: ID!
name: String
description: String @goField(omittable: true)
url: String
type: String
}
input DeleteVendorServiceInput {
vendorServiceId: ID!
}
input CreateFrameworkInput {
organizationId: ID!
name: String!
description: String
}
input UpdateFrameworkInput {
id: ID!
name: String
description: String @goField(omittable: true)
}
input ImportFrameworkInput {
organizationId: ID!
file: Upload!
}
input DeleteFrameworkInput {
frameworkId: ID!
}
input ExportFrameworkInput {
frameworkId: ID!
}
input CreateMeasureInput {
organizationId: ID!
name: String!
description: String
category: String!
}
input UpdateMeasureInput {
id: ID!
name: String
description: String @goField(omittable: true)
category: String
state: MeasureState
}
input ImportMeasureInput {
organizationId: ID!
file: Upload!
}
input CreateTaskInput {
organizationId: ID!
measureId: ID
name: String!
description: String
timeEstimate: Duration
assignedToId: ID
deadline: Datetime
}
input UpdateTaskInput {
taskId: ID!
name: String
description: String @goField(omittable: true)
state: TaskState
timeEstimate: Duration @goField(omittable: true)
deadline: Datetime @goField(omittable: true)
assignedToId: ID @goField(omittable: true)
measureId: ID @goField(omittable: true)
}
input DeleteTaskInput {
taskId: ID!
}
input CreateControlMeasureMappingInput {
controlId: ID!
measureId: ID!
}
input CreateControlDocumentMappingInput {
controlId: ID!
documentId: ID!
}
input DeleteControlMeasureMappingInput {
controlId: ID!
measureId: ID!
}
input DeleteControlDocumentMappingInput {
controlId: ID!
documentId: ID!
}
input CreateApplicabilityStatementInput {
stateOfApplicabilityId: ID!
controlId: ID!
applicability: Boolean!
justification: String
}
input UpdateApplicabilityStatementInput {
applicabilityStatementId: ID!
applicability: Boolean!
justification: String
}
input DeleteApplicabilityStatementInput {
applicabilityStatementId: ID!
}
input CreateControlAuditMappingInput {
controlId: ID!
auditId: ID!
}
input DeleteControlAuditMappingInput {
controlId: ID!
auditId: ID!
}
input CreateControlObligationMappingInput {
controlId: ID!
obligationId: ID!
}
input DeleteControlObligationMappingInput {
controlId: ID!
obligationId: ID!
}
input CreateControlSnapshotMappingInput {
controlId: ID!
snapshotId: ID!
}
input DeleteControlSnapshotMappingInput {
controlId: ID!
snapshotId: ID!
}
input CreateRiskInput {
organizationId: ID!
name: String!
description: String
category: String!
ownerId: ID
treatment: RiskTreatment!
inherentLikelihood: Int!
inherentImpact: Int!
residualLikelihood: Int
residualImpact: Int
note: String
}
input UpdateRiskInput {
id: ID!
name: String
description: String @goField(omittable: true)
category: String
ownerId: ID @goField(omittable: true)
treatment: RiskTreatment
inherentLikelihood: Int
inherentImpact: Int
residualLikelihood: Int
residualImpact: Int
note: String
}
input DeleteRiskInput {
riskId: ID!
}
input CreateRiskMeasureMappingInput {
riskId: ID!
measureId: ID!
}
input DeleteRiskMeasureMappingInput {
riskId: ID!
measureId: ID!
}
input CreateRiskDocumentMappingInput {
riskId: ID!
documentId: ID!
}
input DeleteRiskDocumentMappingInput {
riskId: ID!
documentId: ID!
}
input CreateRiskObligationMappingInput {
riskId: ID!
obligationId: ID!
}
input DeleteRiskObligationMappingInput {
riskId: ID!
obligationId: ID!
}
input DeleteEvidenceInput {
evidenceId: ID!
}
input UploadVendorComplianceReportInput {
vendorId: ID!
reportDate: Datetime!
validUntil: Datetime
reportName: String!
file: Upload!
}
input DeleteVendorComplianceReportInput {
reportId: ID!
}
input UploadVendorBusinessAssociateAgreementInput {
vendorId: ID!
validFrom: Datetime
validUntil: Datetime
fileName: String!
file: Upload!
}
input UpdateVendorBusinessAssociateAgreementInput {
vendorId: ID!
validFrom: Datetime @goField(omittable: true)
validUntil: Datetime @goField(omittable: true)
}
input DeleteVendorBusinessAssociateAgreementInput {
vendorId: ID!
}
input UploadVendorDataPrivacyAgreementInput {
vendorId: ID!
validFrom: Datetime
validUntil: Datetime
fileName: String!
file: Upload!
}
input UpdateVendorDataPrivacyAgreementInput {
vendorId: ID!
validFrom: Datetime @goField(omittable: true)
validUntil: Datetime @goField(omittable: true)
}
input DeleteVendorDataPrivacyAgreementInput {
vendorId: ID!
}
input CreateDocumentInput {
organizationId: ID!
title: String!
content: String!
approverIds: [ID!]!
documentType: DocumentType!
classification: DocumentClassification!
trustCenterVisibility: TrustCenterVisibility
}
input UpdateDocumentInput {
id: ID!
title: String
content: String
approverIds: [ID!]
documentType: DocumentType
classification: DocumentClassification
trustCenterVisibility: TrustCenterVisibility
}
input ExportDocumentVersionPDFInput {
documentVersionId: ID!
withWatermark: Boolean!
watermarkEmail: EmailAddr
withSignatures: Boolean!
}
input ExportSignableDocumentVersionPDFInput {
documentVersionId: ID!
}
input ExportProcessingActivitiesPDFInput {
organizationId: ID!
filter: ProcessingActivityFilter
}
input ExportDataProtectionImpactAssessmentsPDFInput {
organizationId: ID!
filter: DataProtectionImpactAssessmentFilter
}
input ExportTransferImpactAssessmentsPDFInput {
organizationId: ID!
filter: TransferImpactAssessmentFilter
}
input ArchiveDocumentInput {
documentId: ID!
}
input UnarchiveDocumentInput {
documentId: ID!
}
input DeleteDocumentInput {
documentId: ID!
}
input CreateMeetingInput {
organizationId: ID!
name: String!
date: Datetime!
attendeeIds: [ID!]
minutes: String
}
input UpdateMeetingInput {
meetingId: ID!
name: String
date: Datetime
attendeeIds: [ID!]
minutes: String @goField(omittable: true)
}
input DeleteMeetingInput {
meetingId: ID!
}
input CreateStateOfApplicabilityInput {
organizationId: ID!
name: String!
ownerId: ID!
}
input UpdateStateOfApplicabilityInput {
id: ID!
name: String
ownerId: ID
}
input ApplicabilityStatementInput {
controlId: ID!
applicability: Boolean!
justification: String
}
input DeleteStateOfApplicabilityInput {
stateOfApplicabilityId: ID!
}
input ExportStateOfApplicabilityPDFInput {
stateOfApplicabilityId: ID!
}
type ExportStateOfApplicabilityPDFPayload {
data: String!
}
input StateOfApplicabilityOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.StateOfApplicabilityOrderBy"
) {
direction: OrderDirection!
field: StateOfApplicabilityOrderField!
}
enum StateOfApplicabilityOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.StateOfApplicabilityOrderField"
) {
NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.StateOfApplicabilityOrderFieldName"
)
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.StateOfApplicabilityOrderFieldCreatedAt"
)
}
input CreateControlInput {
frameworkId: ID!
sectionTitle: String!
name: String!
description: String
bestPractice: Boolean!
implemented: ControlImplementationState!
notImplementedJustification: String
}
input UpdateControlInput {
id: ID!
sectionTitle: String
name: String
description: String @goField(omittable: true)
bestPractice: Boolean
implemented: ControlImplementationState
notImplementedJustification: String @goField(omittable: true)
}
input DeleteControlInput {
controlId: ID!
}
# Audit input types
input CreateAuditInput {
organizationId: ID!
frameworkId: ID!
name: String
validFrom: Datetime
validUntil: Datetime
state: AuditState
trustCenterVisibility: TrustCenterVisibility
file: Upload
}
input UpdateAuditInput {
id: ID!
name: String @goField(omittable: true)
validFrom: Datetime
validUntil: Datetime
state: AuditState
trustCenterVisibility: TrustCenterVisibility
}
input DeleteAuditInput {
auditId: ID!
}
input UploadAuditReportInput {
auditId: ID!
file: Upload!
}
input DeleteAuditReportInput {
auditId: ID!
}
# Finding input types
input CreateFindingInput {
organizationId: ID!
kind: FindingKind!
description: String
source: String
identifiedOn: Datetime
rootCause: String
correctiveAction: String
ownerId: ID
dueDate: Datetime
status: FindingStatus!
priority: FindingPriority!
riskId: ID
effectivenessCheck: String
}
input UpdateFindingInput {
id: ID!
description: String @goField(omittable: true)
source: String @goField(omittable: true)
identifiedOn: Datetime @goField(omittable: true)
rootCause: String @goField(omittable: true)
correctiveAction: String @goField(omittable: true)
ownerId: ID
dueDate: Datetime @goField(omittable: true)
status: FindingStatus
priority: FindingPriority
riskId: ID @goField(omittable: true)
effectivenessCheck: String @goField(omittable: true)
}
input DeleteFindingInput {
findingId: ID!
}
input CreateFindingAuditMappingInput {
findingId: ID!
auditId: ID!
referenceId: String!
}
input DeleteFindingAuditMappingInput {
findingId: ID!
auditId: ID!
}
input CreateObligationInput {
organizationId: ID!
area: String
source: String
requirement: String
actionsToBeImplemented: String
regulator: String
ownerId: ID!
lastReviewDate: Datetime
dueDate: Datetime
status: ObligationStatus!
type: ObligationType!
}
input UpdateObligationInput {
id: ID!
area: String @goField(omittable: true)
source: String @goField(omittable: true)
requirement: String @goField(omittable: true)
actionsToBeImplemented: String @goField(omittable: true)
regulator: String @goField(omittable: true)
ownerId: ID
lastReviewDate: Datetime @goField(omittable: true)
dueDate: Datetime @goField(omittable: true)
status: ObligationStatus
type: ObligationType
}
input DeleteObligationInput {
obligationId: ID!
}
input CreateRightsRequestInput {
organizationId: ID!
requestType: RightsRequestType!
requestState: RightsRequestState!
dataSubject: String
contact: String
details: String
deadline: Datetime
actionTaken: String
}
input UpdateRightsRequestInput {
id: ID!
requestType: RightsRequestType
requestState: RightsRequestState
dataSubject: String @goField(omittable: true)
contact: String @goField(omittable: true)
details: String @goField(omittable: true)
deadline: Datetime @goField(omittable: true)
actionTaken: String @goField(omittable: true)
}
input DeleteRightsRequestInput {
rightsRequestId: ID!
}
input CreateProcessingActivityInput {
organizationId: ID!
name: String!
purpose: String
dataSubjectCategory: String
personalDataCategory: String
specialOrCriminalData: ProcessingActivitySpecialOrCriminalDatum!
consentEvidenceLink: String
lawfulBasis: ProcessingActivityLawfulBasis!
recipients: String
location: String
internationalTransfers: Boolean!
transferSafeguards: ProcessingActivityTransferSafeguard
retentionPeriod: String
securityMeasures: String
dataProtectionImpactAssessmentNeeded: ProcessingActivityDataProtectionImpactAssessment!
transferImpactAssessmentNeeded: ProcessingActivityTransferImpactAssessment!
lastReviewDate: Datetime
nextReviewDate: Datetime
role: ProcessingActivityRole!
dataProtectionOfficerId: ID
vendorIds: [ID!]
}
input UpdateProcessingActivityInput {
id: ID!
name: String
purpose: String @goField(omittable: true)
dataSubjectCategory: String @goField(omittable: true)
personalDataCategory: String @goField(omittable: true)
specialOrCriminalData: ProcessingActivitySpecialOrCriminalDatum
consentEvidenceLink: String
lawfulBasis: ProcessingActivityLawfulBasis
recipients: String @goField(omittable: true)
location: String @goField(omittable: true)
internationalTransfers: Boolean
transferSafeguards: ProcessingActivityTransferSafeguard
@goField(omittable: true)
retentionPeriod: String @goField(omittable: true)
securityMeasures: String @goField(omittable: true)
dataProtectionImpactAssessmentNeeded: ProcessingActivityDataProtectionImpactAssessment
transferImpactAssessmentNeeded: ProcessingActivityTransferImpactAssessment
lastReviewDate: Datetime @goField(omittable: true)
nextReviewDate: Datetime @goField(omittable: true)
role: ProcessingActivityRole
dataProtectionOfficerId: ID @goField(omittable: true)
vendorIds: [ID!]
}
input DeleteProcessingActivityInput {
processingActivityId: ID!
}
input CreateDataProtectionImpactAssessmentInput {
processingActivityId: ID!
description: String
necessityAndProportionality: String
potentialRisk: String
mitigations: String
residualRisk: DataProtectionImpactAssessmentResidualRisk
}
input UpdateDataProtectionImpactAssessmentInput {
id: ID!
description: String @goField(omittable: true)
necessityAndProportionality: String @goField(omittable: true)
potentialRisk: String @goField(omittable: true)
mitigations: String @goField(omittable: true)
residualRisk: DataProtectionImpactAssessmentResidualRisk
}
input DeleteDataProtectionImpactAssessmentInput {
dataProtectionImpactAssessmentId: ID!
}
input CreateTransferImpactAssessmentInput {
processingActivityId: ID!
dataSubjects: String
legalMechanism: String
transfer: String
localLawRisk: String
supplementaryMeasures: String
}
input UpdateTransferImpactAssessmentInput {
id: ID!
dataSubjects: String @goField(omittable: true)
legalMechanism: String @goField(omittable: true)
transfer: String @goField(omittable: true)
localLawRisk: String @goField(omittable: true)
supplementaryMeasures: String @goField(omittable: true)
}
input DeleteTransferImpactAssessmentInput {
transferImpactAssessmentId: ID!
}
input CreateSnapshotInput {
organizationId: ID!
name: String!
description: String
type: SnapshotsType!
}
input DeleteSnapshotInput {
snapshotId: ID!
}
# Payload Types
type UpdateOrganizationContextPayload {
context: OrganizationContext!
}
type OrganizationContext {
organizationId: ID!
product: String
architecture: String
team: String
processes: String
customers: String
}
type UpdateTrustCenterPayload {
trustCenter: TrustCenter!
}
type UploadTrustCenterNDAPayload {
trustCenter: TrustCenter!
}
type DeleteTrustCenterNDAPayload {
trustCenter: TrustCenter!
}
type UpdateTrustCenterBrandPayload {
trustCenter: TrustCenter!
}
type UpdateTrustCenterAccessPayload {
trustCenterAccess: TrustCenterAccess!
}
type DeleteTrustCenterAccessPayload {
deletedTrustCenterAccessId: ID!
}
type CreateMailingListUpdatePayload {
mailingListUpdate: MailingListUpdate!
}
type UpdateMailingListUpdatePayload {
mailingListUpdate: MailingListUpdate!
}
type SendMailingListUpdatePayload {
mailingListUpdate: MailingListUpdate!
}
type DeleteMailingListUpdatePayload {
deletedMailingListUpdateId: ID!
}
type CreateMailingListSubscriberPayload {
mailingListSubscriberEdge: MailingListSubscriberEdge!
}
type DeleteMailingListSubscriberPayload {
deletedMailingListSubscriberId: ID!
}
type CreateTrustCenterReferencePayload {
trustCenterReferenceEdge: TrustCenterReferenceEdge!
}
type UpdateTrustCenterReferencePayload {
trustCenterReference: TrustCenterReference!
}
type DeleteTrustCenterReferencePayload {
deletedTrustCenterReferenceId: ID!
}
type CreateComplianceFrameworkPayload {
complianceFrameworkEdge: ComplianceFrameworkEdge!
}
type UpdateComplianceFrameworkPayload {
complianceFramework: ComplianceFramework!
}
type DeleteComplianceFrameworkPayload {
deletedComplianceFrameworkId: ID!
}
type CreateComplianceExternalURLPayload {
complianceExternalUrlEdge: ComplianceExternalURLEdge!
}
type UpdateComplianceExternalURLPayload {
complianceExternalUrl: ComplianceExternalURL!
}
type DeleteComplianceExternalURLPayload {
deletedComplianceExternalUrlId: ID!
}
type CreateTrustCenterFilePayload {
trustCenterFileEdge: TrustCenterFileEdge!
}
type UpdateTrustCenterFilePayload {
trustCenterFile: TrustCenterFile!
}
type GetTrustCenterFilePayload {
trustCenterFile: TrustCenterFile!
}
type DeleteTrustCenterFilePayload {
deletedTrustCenterFileId: ID!
}
type CreateControlPayload {
controlEdge: ControlEdge!
}
type UpdateControlPayload {
control: Control!
}
type DeleteControlPayload {
deletedControlId: ID!
}
type CreateVendorPayload {
vendorEdge: VendorEdge!
}
type UpdateVendorPayload {
vendor: Vendor!
}
type DeleteVendorPayload {
deletedVendorId: ID!
}
type CreateVendorContactPayload {
vendorContactEdge: VendorContactEdge!
}
type UpdateVendorContactPayload {
vendorContact: VendorContact!
}
type DeleteVendorContactPayload {
deletedVendorContactId: ID!
}
type CreateVendorServicePayload {
vendorServiceEdge: VendorServiceEdge!
}
type UpdateVendorServicePayload {
vendorService: VendorService!
}
type DeleteVendorServicePayload {
deletedVendorServiceId: ID!
}
type CreateFrameworkPayload {
frameworkEdge: FrameworkEdge!
}
type UpdateFrameworkPayload {
framework: Framework!
}
type ImportFrameworkPayload {
frameworkEdge: FrameworkEdge!
}
type DeleteFrameworkPayload {
deletedFrameworkId: ID!
}
type ExportFrameworkPayload {
exportJobId: ID!
}
type CreateMeasurePayload {
measureEdge: MeasureEdge!
}
type UpdateMeasurePayload {
measure: Measure!
}
type ImportMeasurePayload {
measureEdges: [MeasureEdge!]!
}
type CreateTaskPayload {
taskEdge: TaskEdge!
}
type UpdateTaskPayload {
task: Task!
}
type DeleteTaskPayload {
deletedTaskId: ID!
}
type CreateControlMeasureMappingPayload {
controlEdge: ControlEdge!
measureEdge: MeasureEdge!
}
type CreateControlDocumentMappingPayload {
controlEdge: ControlEdge!
documentEdge: DocumentEdge!
}
type DeleteControlMeasureMappingPayload {
deletedControlId: ID!
deletedMeasureId: ID!
}
type DeleteControlDocumentMappingPayload {
deletedControlId: ID!
deletedDocumentId: ID!
}
type CreateApplicabilityStatementPayload {
applicabilityStatementEdge: ApplicabilityStatementEdge!
}
type UpdateApplicabilityStatementPayload {
applicabilityStatement: ApplicabilityStatement!
}
type DeleteApplicabilityStatementPayload {
deletedApplicabilityStatementId: ID!
}
type CreateControlAuditMappingPayload {
controlEdge: ControlEdge
auditEdge: AuditEdge
}
type DeleteControlAuditMappingPayload {
deletedControlId: ID
deletedAuditId: ID
}
type CreateControlObligationMappingPayload {
controlEdge: ControlEdge!
obligationEdge: ObligationEdge!
}
type DeleteControlObligationMappingPayload {
deletedControlId: ID!
deletedObligationId: ID!
}
type CreateControlSnapshotMappingPayload {
controlEdge: ControlEdge!
snapshotEdge: SnapshotEdge!
}
type DeleteControlSnapshotMappingPayload {
deletedControlId: ID!
deletedSnapshotId: ID!
}
type CreateRiskPayload {
riskEdge: RiskEdge!
}
type UpdateRiskPayload {
risk: Risk!
}
type DeleteRiskPayload {
deletedRiskId: ID!
}
type CreateRiskMeasureMappingPayload {
riskEdge: RiskEdge!
measureEdge: MeasureEdge!
}
type DeleteRiskMeasureMappingPayload {
deletedMeasureId: ID!
deletedRiskId: ID!
}
type CreateRiskDocumentMappingPayload {
riskEdge: RiskEdge!
documentEdge: DocumentEdge!
}
type DeleteRiskDocumentMappingPayload {
deletedRiskId: ID!
deletedDocumentId: ID!
}
type CreateRiskObligationMappingPayload {
riskEdge: RiskEdge!
obligationEdge: ObligationEdge!
}
type DeleteRiskObligationMappingPayload {
deletedRiskId: ID!
deletedObligationId: ID!
}
type DeleteEvidencePayload {
deletedEvidenceId: ID!
}
type UploadVendorComplianceReportPayload {
vendorComplianceReportEdge: VendorComplianceReportEdge!
}
type DeleteVendorComplianceReportPayload {
deletedVendorComplianceReportId: ID!
}
type UploadVendorBusinessAssociateAgreementPayload {
vendorBusinessAssociateAgreement: VendorBusinessAssociateAgreement!
}
type UpdateVendorBusinessAssociateAgreementPayload {
vendorBusinessAssociateAgreement: VendorBusinessAssociateAgreement!
}
type DeleteVendorBusinessAssociateAgreementPayload {
deletedVendorId: ID!
}
type UploadVendorDataPrivacyAgreementPayload {
vendorDataPrivacyAgreement: VendorDataPrivacyAgreement!
}
type UpdateVendorDataPrivacyAgreementPayload {
vendorDataPrivacyAgreement: VendorDataPrivacyAgreement!
}
type DeleteVendorDataPrivacyAgreementPayload {
deletedVendorId: ID!
}
type CreateDocumentPayload {
documentEdge: DocumentEdge!
documentVersionEdge: DocumentVersionEdge!
}
type ExportDocumentVersionPDFPayload {
data: String!
}
type ExportSignableDocumentVersionPDFPayload {
data: String!
}
type ExportProcessingActivitiesPDFPayload {
data: String!
}
type ExportDataProtectionImpactAssessmentsPDFPayload {
data: String!
}
type ExportTransferImpactAssessmentsPDFPayload {
data: String!
}
type UpdateDocumentPayload {
document: Document!
}
type ArchiveDocumentPayload {
document: Document!
}
type UnarchiveDocumentPayload {
document: Document!
}
type DeleteDocumentPayload {
deletedDocumentId: ID!
}
type CreateMeetingPayload {
meetingEdge: MeetingEdge!
}
type UpdateMeetingPayload {
meeting: Meeting!
}
type DeleteMeetingPayload {
deletedMeetingId: ID!
}
input CreateWebhookSubscriptionInput {
organizationId: ID!
endpointUrl: String!
selectedEvents: [WebhookEventType!]!
}
input UpdateWebhookSubscriptionInput {
id: ID!
endpointUrl: String
selectedEvents: [WebhookEventType!]
}
input DeleteWebhookSubscriptionInput {
webhookSubscriptionId: ID!
}
type CreateWebhookSubscriptionPayload {
webhookSubscriptionEdge: WebhookSubscriptionEdge!
}
type UpdateWebhookSubscriptionPayload {
webhookSubscription: WebhookSubscription!
}
type DeleteWebhookSubscriptionPayload {
deletedWebhookSubscriptionId: ID!
}
type CreateStateOfApplicabilityPayload {
stateOfApplicabilityEdge: StateOfApplicabilityEdge!
}
type UpdateStateOfApplicabilityPayload {
stateOfApplicability: StateOfApplicability!
}
type DeleteStateOfApplicabilityPayload {
deletedStateOfApplicabilityId: ID!
}
input VendorRiskAssessmentOrder {
field: VendorRiskAssessmentOrderField!
direction: OrderDirection!
}
type VendorRiskAssessment implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
expiresAt: Datetime!
dataSensitivity: DataSensitivity!
businessImpact: BusinessImpact!
notes: String
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
enum VendorRiskAssessmentOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.VendorRiskAssessmentOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorRiskAssessmentOrderFieldCreatedAt"
)
EXPIRES_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.VendorRiskAssessmentOrderFieldExpiresAt"
)
}
input CreateVendorRiskAssessmentInput {
vendorId: ID!
expiresAt: Datetime!
dataSensitivity: DataSensitivity!
businessImpact: BusinessImpact!
notes: String
}
type CreateVendorRiskAssessmentPayload {
vendorRiskAssessmentEdge: VendorRiskAssessmentEdge!
}
input DeleteMeasureInput {
measureId: ID!
}
type DeleteMeasurePayload {
deletedMeasureId: ID!
}
type DocumentVersion implements Node {
id: ID!
document: Document! @goField(forceResolver: true)
status: DocumentVersionStatus!
version: Int!
content: String!
changelog: String!
title: String!
classification: DocumentClassification!
approvers(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProfileOrder
): ProfileConnection! @goField(forceResolver: true)
signatures(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: DocumentVersionSignatureOrder
filter: DocumentVersionSignatureFilter
): DocumentVersionSignatureConnection! @goField(forceResolver: true)
signed: Boolean! @goField(forceResolver: true)
publishedAt: Datetime
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type DocumentVersionSignatureConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DocumentVersionSignatureConnection"
) {
edges: [DocumentVersionSignatureEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type DocumentVersionSignatureEdge {
cursor: CursorKey!
node: DocumentVersionSignature!
}
input DocumentVersionSignatureOrder {
field: DocumentVersionSignatureOrderField!
direction: OrderDirection!
}
input DocumentVersionSignatureFilter {
states: [DocumentVersionSignatureState!]
activeContract: Boolean
}
enum DocumentVersionSignatureState
@goModel(
model: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureState"
) {
REQUESTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureStateRequested"
)
SIGNED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureStateSigned"
)
}
enum DocumentVersionSignatureOrderField
@goModel(
model: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureOrderField"
) {
CREATED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureOrderFieldCreatedAt"
)
SIGNED_AT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.DocumentVersionSignatureOrderFieldSignedAt"
)
}
type DocumentVersionSignature implements Node {
id: ID!
documentVersion: DocumentVersion! @goField(forceResolver: true)
state: DocumentVersionSignatureState!
signedBy: Profile! @goField(forceResolver: true)
signedAt: Datetime
requestedAt: Datetime!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
input RequestSignatureInput {
documentVersionId: ID!
signatoryId: ID!
}
input BulkRequestSignaturesInput {
documentIds: [ID!]!
signatoryIds: [ID!]!
}
type RequestSignaturePayload {
documentVersionSignatureEdge: DocumentVersionSignatureEdge!
}
type BulkRequestSignaturesPayload {
documentVersionSignatureEdges: [DocumentVersionSignatureEdge!]!
}
input BulkPublishDocumentVersionsInput {
documentIds: [ID!]!
changelog: String!
}
type BulkPublishDocumentVersionsPayload {
documentVersionEdges: [DocumentVersionEdge!]!
documentEdges: [DocumentEdge!]!
}
input BulkDeleteDocumentsInput {
documentIds: [ID!]!
}
input BulkArchiveDocumentsInput {
documentIds: [ID!]!
}
type BulkArchiveDocumentsPayload {
documents: [Document!]!
}
input BulkUnarchiveDocumentsInput {
documentIds: [ID!]!
}
type BulkUnarchiveDocumentsPayload {
documents: [Document!]!
}
input BulkExportDocumentsInput {
documentIds: [ID!]!
withWatermark: Boolean!
watermarkEmail: EmailAddr
withSignatures: Boolean!
}
type BulkDeleteDocumentsPayload {
deletedDocumentIds: [ID!]!
}
type BulkExportDocumentsPayload {
exportJobId: ID!
}
input PublishDocumentVersionInput {
documentId: ID!
changelog: String
}
type PublishDocumentVersionPayload {
documentVersion: DocumentVersion!
document: Document!
}
type CreateDraftDocumentVersionPayload {
documentVersionEdge: DocumentVersionEdge!
}
type DeleteDraftDocumentVersionPayload {
deletedDocumentVersionId: ID!
}
input CreateDraftDocumentVersionInput {
documentID: ID!
}
input DeleteDraftDocumentVersionInput {
documentVersionId: ID!
}
input UpdateDocumentVersionInput {
documentVersionId: ID!
content: String!
}
input CancelSignatureRequestInput {
documentVersionSignatureId: ID!
}
type UpdateDocumentVersionPayload {
documentVersion: DocumentVersion!
}
input SendSigningNotificationsInput {
organizationId: ID!
}
type SendSigningNotificationsPayload {
success: Boolean!
}
type CancelSignatureRequestPayload {
deletedDocumentVersionSignatureId: ID!
}
input SignDocumentInput {
documentVersionId: ID!
}
type SignDocumentPayload {
documentVersionSignature: DocumentVersionSignature!
}
type UploadMeasureEvidencePayload {
evidenceEdge: EvidenceEdge!
}
input UploadMeasureEvidenceInput {
measureId: ID!
file: Upload!
}
input GenerateDocumentChangelogInput {
documentId: ID!
}
type GenerateDocumentChangelogPayload {
changelog: String!
}
input AssessVendorInput {
id: ID!
websiteUrl: String!
}
type AssessVendorPayload {
vendor: Vendor!
}
type Asset implements Node {
id: ID!
snapshotId: ID
name: String!
amount: Int!
owner: Profile! @goField(forceResolver: true)
vendors(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorOrder
): VendorConnection! @goField(forceResolver: true)
assetType: AssetType!
dataTypesStored: String!
organization: Organization! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type AssetConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AssetConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [AssetEdge!]!
pageInfo: PageInfo!
}
type AssetEdge {
cursor: CursorKey!
node: Asset!
}
input AssetOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AssetOrderBy"
) {
direction: OrderDirection!
field: AssetOrderField!
}
input CreateAssetInput {
organizationId: ID!
name: String!
amount: Int!
ownerId: ID!
assetType: AssetType!
dataTypesStored: String!
vendorIds: [ID!]
}
input UpdateAssetInput {
id: ID!
name: String
amount: Int
ownerId: ID
assetType: AssetType
dataTypesStored: String
vendorIds: [ID!]
}
input DeleteAssetInput {
assetId: ID!
}
type CreateAssetPayload {
assetEdge: AssetEdge!
}
type UpdateAssetPayload {
asset: Asset!
}
type DeleteAssetPayload {
deletedAssetId: ID!
}
type Datum implements Node
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.Datum"
) {
id: ID!
snapshotId: ID
name: String!
dataClassification: DataClassification!
owner: Profile! @goField(forceResolver: true)
vendors(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorOrder
): VendorConnection! @goField(forceResolver: true)
organization: Organization! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
input DatumOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.DatumOrderBy"
) {
direction: OrderDirection!
field: DatumOrderField!
}
input CreateDatumInput {
organizationId: ID!
name: String!
dataClassification: DataClassification!
ownerId: ID!
vendorIds: [ID!]
}
input UpdateDatumInput {
id: ID!
name: String
dataClassification: DataClassification
ownerId: ID
vendorIds: [ID!]
}
input DeleteDatumInput {
datumId: ID!
}
type CreateDatumPayload {
datumEdge: DatumEdge!
}
type UpdateDatumPayload {
datum: Datum!
}
type DeleteDatumPayload {
deletedDatumId: ID!
}
type CreateAuditPayload {
auditEdge: AuditEdge
}
type UpdateAuditPayload {
audit: Audit
}
type DeleteAuditPayload {
deletedAuditId: ID
}
type UploadAuditReportPayload {
audit: Audit
}
type DeleteAuditReportPayload {
audit: Audit
}
# Finding payload types
type CreateFindingPayload {
findingEdge: FindingEdge
}
type UpdateFindingPayload {
finding: Finding
}
type DeleteFindingPayload {
deletedFindingId: ID
}
type CreateFindingAuditMappingPayload {
findingEdge: FindingEdge
auditEdge: AuditEdge
}
type DeleteFindingAuditMappingPayload {
deletedFindingId: ID
deletedAuditId: ID
}
type CreateObligationPayload {
obligationEdge: ObligationEdge!
}
type UpdateObligationPayload {
obligation: Obligation!
}
type DeleteObligationPayload {
deletedObligationId: ID!
}
type CreateRightsRequestPayload {
rightsRequestEdge: RightsRequestEdge!
}
type UpdateRightsRequestPayload {
rightsRequest: RightsRequest!
}
type DeleteRightsRequestPayload {
deletedRightsRequestId: ID!
}
type CreateProcessingActivityPayload {
processingActivityEdge: ProcessingActivityEdge!
}
type UpdateProcessingActivityPayload {
processingActivity: ProcessingActivity!
}
type DeleteProcessingActivityPayload {
deletedProcessingActivityId: ID!
}
type CreateDataProtectionImpactAssessmentPayload {
dataProtectionImpactAssessment: DataProtectionImpactAssessment!
}
type UpdateDataProtectionImpactAssessmentPayload {
dataProtectionImpactAssessment: DataProtectionImpactAssessment!
}
type DeleteDataProtectionImpactAssessmentPayload {
deletedDataProtectionImpactAssessmentId: ID!
}
type CreateTransferImpactAssessmentPayload {
transferImpactAssessment: TransferImpactAssessment!
}
type UpdateTransferImpactAssessmentPayload {
transferImpactAssessment: TransferImpactAssessment!
}
type DeleteTransferImpactAssessmentPayload {
deletedTransferImpactAssessmentId: ID!
}
type CreateSnapshotPayload {
snapshotEdge: SnapshotEdge!
}
type DeleteSnapshotPayload {
deletedSnapshotId: ID!
}
enum SSLStatus
@goModel(model: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatus") {
PENDING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusPending"
)
PROVISIONING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusProvisioning"
)
ACTIVE
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusActive"
)
RENEWING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusRenewing"
)
EXPIRED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusExpired"
)
FAILED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.CustomDomainSSLStatusFailed"
)
}
type CustomDomain implements Node {
id: ID!
organization: Organization!
domain: String!
sslStatus: SSLStatus!
sslExpiresAt: Datetime
dnsRecords: [DNSRecordInstruction!]!
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type DNSRecordInstruction {
type: String!
name: String!
value: String!
ttl: Int!
purpose: String!
}
input CreateCustomDomainInput {
organizationId: ID!
domain: String!
}
input DeleteCustomDomainInput {
organizationId: ID!
}
type CreateCustomDomainPayload {
customDomain: CustomDomain!
}
type DeleteCustomDomainPayload {
deletedCustomDomainId: ID!
}
# Electronic Signature
enum ElectronicSignatureStatus
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatus"
) {
PENDING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatusPending"
)
ACCEPTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatusAccepted"
)
PROCESSING
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatusProcessing"
)
COMPLETED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatusCompleted"
)
FAILED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureStatusFailed"
)
}
enum ElectronicSignatureDocumentType
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentType"
) {
NDA
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeNDA"
)
DPA
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeDPA"
)
MSA
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeMSA"
)
SOW
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeSOW"
)
SLA
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeSLA"
)
TOS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeTOS"
)
PRIVACY_POLICY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypePrivacyPolicy"
)
OTHER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureDocumentTypeOther"
)
}
enum ElectronicSignatureEventType
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventType"
) {
DOCUMENT_VIEWED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeDocumentViewed"
)
CONSENT_GIVEN
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeConsentGiven"
)
FULL_NAME_TYPED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeFullNameTyped"
)
SIGNATURE_ACCEPTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeSignatureAccepted"
)
SIGNATURE_COMPLETED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeSignatureCompleted"
)
SEAL_COMPUTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeSealComputed"
)
TIMESTAMP_REQUESTED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeTimestampRequested"
)
CERTIFICATE_GENERATED
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeCertificateGenerated"
)
PROCESSING_ERROR
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventTypeProcessingError"
)
}
enum ElectronicSignatureEventSource
@goModel(
model: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventSource"
) {
CLIENT
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventSourceClient"
)
SERVER
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.ElectronicSignatureEventSourceServer"
)
}
type ElectronicSignature implements Node {
id: ID!
status: ElectronicSignatureStatus!
documentType: ElectronicSignatureDocumentType!
consentText: String!
lastError: String
signedAt: Datetime
certificateFileUrl: String @goField(forceResolver: true)
events: [ElectronicSignatureEvent!]! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
}
type ElectronicSignatureEvent {
id: ID!
eventType: ElectronicSignatureEventType!
eventSource: ElectronicSignatureEventSource!
actorEmail: String!
actorIpAddress: String!
actorUserAgent: String!
occurredAt: Datetime!
createdAt: Datetime!
}
# Audit Log
input AuditLogEntryOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditLogEntryOrderBy"
) {
field: AuditLogEntryOrderField!
direction: OrderDirection!
}
input AuditLogEntryFilter {
action: String
actorId: ID
resourceType: String
resourceId: ID
}
type AuditLogEntry implements Node {
id: ID!
organization: Organization @goField(forceResolver: true)
actorId: ID!
actorType: AuditLogActorType!
action: String!
resourceType: String!
resourceId: ID!
metadata: String
createdAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type AuditLogEntryConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditLogEntryConnection"
) {
edges: [AuditLogEntryEdge!]!
pageInfo: PageInfo!
totalCount: Int! @goField(forceResolver: true)
}
type AuditLogEntryEdge {
cursor: CursorKey!
node: AuditLogEntry!
}