2337 lines
51 KiB
GraphQL
2337 lines
51 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 Void
|
|
scalar Datetime
|
|
scalar Upload
|
|
scalar Duration
|
|
|
|
# Interfaces
|
|
interface Node {
|
|
id: ID!
|
|
}
|
|
|
|
# Pagination
|
|
type PageInfo {
|
|
hasNextPage: Boolean!
|
|
hasPreviousPage: Boolean!
|
|
startCursor: CursorKey
|
|
endCursor: CursorKey
|
|
}
|
|
|
|
# Enums
|
|
enum OrderDirection
|
|
@goModel(model: "github.com/getprobo/probo/pkg/page.OrderDirection") {
|
|
ASC @goEnum(value: "github.com/getprobo/probo/pkg/page.OrderDirectionAsc")
|
|
DESC @goEnum(value: "github.com/getprobo/probo/pkg/page.OrderDirectionDesc")
|
|
}
|
|
|
|
enum MeasureState
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.MeasureState") {
|
|
NOT_STARTED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.MeasureStateNotStarted"
|
|
)
|
|
IN_PROGRESS
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.MeasureStateInProgress"
|
|
)
|
|
NOT_APPLICABLE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.MeasureStateNotApplicable"
|
|
)
|
|
IMPLEMENTED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.MeasureStateImplemented"
|
|
)
|
|
}
|
|
|
|
enum TaskState
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.TaskState") {
|
|
TODO @goEnum(value: "github.com/getprobo/probo/pkg/coredata.TaskStateTodo")
|
|
DONE @goEnum(value: "github.com/getprobo/probo/pkg/coredata.TaskStateDone")
|
|
}
|
|
|
|
enum EvidenceState
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.EvidenceState") {
|
|
FULFILLED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.EvidenceStateFulfilled"
|
|
)
|
|
REQUESTED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.EvidenceStateRequested"
|
|
)
|
|
}
|
|
|
|
enum PeopleKind
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.PeopleKind") {
|
|
EMPLOYEE
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.PeopleKindEmployee")
|
|
CONTRACTOR
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.PeopleKindContractor"
|
|
)
|
|
SERVICE_ACCOUNT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.PeopleKindServiceAccount"
|
|
)
|
|
}
|
|
|
|
enum DocumentStatus
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DocumentStatus") {
|
|
DRAFT
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DocumentStatusDraft")
|
|
PUBLISHED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentStatusPublished"
|
|
)
|
|
}
|
|
|
|
enum EvidenceType
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.EvidenceType") {
|
|
FILE @goEnum(value: "github.com/getprobo/probo/pkg/coredata.EvidenceTypeFile")
|
|
LINK @goEnum(value: "github.com/getprobo/probo/pkg/coredata.EvidenceTypeLink")
|
|
}
|
|
|
|
enum RiskTreatment
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.RiskTreatment") {
|
|
MITIGATED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskTreatmentMitigated"
|
|
)
|
|
ACCEPTED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskTreatmentAccepted"
|
|
)
|
|
AVOIDED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskTreatmentAvoided"
|
|
)
|
|
TRANSFERRED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskTreatmentTransferred"
|
|
)
|
|
}
|
|
|
|
# Order Field Enums
|
|
enum UserOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.UserOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.UserOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
enum PeopleOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.PeopleOrderField") {
|
|
FULL_NAME
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.PeopleOrderFieldFullName"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.PeopleOrderFieldCreatedAt"
|
|
)
|
|
KIND
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.PeopleOrderFieldKind"
|
|
)
|
|
}
|
|
|
|
enum VendorOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.VendorOrderField") {
|
|
NAME
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorOrderFieldName"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorOrderFieldCreatedAt"
|
|
)
|
|
UPDATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorOrderFieldUpdatedAt"
|
|
)
|
|
}
|
|
|
|
enum FrameworkOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.FrameworkOrderField"
|
|
) {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.FrameworkOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
enum ControlOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ControlOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.ControlOrderFieldCreatedAt"
|
|
)
|
|
SECTION_TITLE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.ControlOrderFieldSectionTitle"
|
|
)
|
|
}
|
|
|
|
enum MeasureOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.MeasureOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.MeasureOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
enum TaskOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.TaskOrderField") {
|
|
CREATED_AT
|
|
}
|
|
|
|
enum DocumentOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DocumentOrderField") {
|
|
TITLE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentOrderFieldTitle"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentOrderFieldCreatedAt"
|
|
)
|
|
DOCUMENT_TYPE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentOrderFieldDocumentType"
|
|
)
|
|
}
|
|
|
|
enum RiskOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.RiskOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldCreatedAt"
|
|
)
|
|
UPDATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldUpdatedAt"
|
|
)
|
|
NAME
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldName")
|
|
CATEGORY
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldCategory"
|
|
)
|
|
TREATMENT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldTreatment"
|
|
)
|
|
INHERENT_RISK_SCORE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldInherentRiskScore"
|
|
)
|
|
RESIDUAL_RISK_SCORE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.RiskOrderFieldResidualRiskScore"
|
|
)
|
|
}
|
|
|
|
enum EvidenceOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.EvidenceOrderField") {
|
|
CREATED_AT
|
|
}
|
|
|
|
enum VendorComplianceReportOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderField"
|
|
) {
|
|
REPORT_DATE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderFieldReportDate"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
enum OrganizationOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.OrganizationOrderField"
|
|
) {
|
|
NAME
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.OrganizationOrderFieldName"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.OrganizationOrderFieldCreatedAt"
|
|
)
|
|
UPDATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.OrganizationOrderFieldUpdatedAt"
|
|
)
|
|
}
|
|
|
|
enum ConnectorOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.ConnectorOrderField"
|
|
) {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.ConnectorOrderFieldCreatedAt"
|
|
)
|
|
NAME
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.ConnectorOrderFieldName"
|
|
)
|
|
}
|
|
|
|
enum DataSensitivity
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DataSensitivity") {
|
|
NONE
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataSensitivityNone")
|
|
LOW
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataSensitivityLow")
|
|
MEDIUM
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataSensitivityMedium"
|
|
)
|
|
HIGH
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataSensitivityHigh")
|
|
CRITICAL
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataSensitivityCritical"
|
|
)
|
|
}
|
|
|
|
enum BusinessImpact
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.BusinessImpact") {
|
|
LOW @goEnum(value: "github.com/getprobo/probo/pkg/coredata.BusinessImpactLow")
|
|
MEDIUM
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.BusinessImpactMedium"
|
|
)
|
|
HIGH
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.BusinessImpactHigh")
|
|
CRITICAL
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.BusinessImpactCritical"
|
|
)
|
|
}
|
|
|
|
enum DocumentVersionOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.DocumentVersionOrderField"
|
|
) {
|
|
VERSION
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionOrderFieldVersion"
|
|
)
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
enum VendorCategory
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.VendorCategory") {
|
|
ANALYTICS
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryAnalytics"
|
|
)
|
|
CLOUD_MONITORING
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryCloudMonitoring"
|
|
)
|
|
CLOUD_PROVIDER
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryCloudProvider"
|
|
)
|
|
COLLABORATION
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryCollaboration"
|
|
)
|
|
CUSTOMER_SUPPORT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryCustomerSupport"
|
|
)
|
|
DATA_STORAGE_AND_PROCESSING
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryDataStorageAndProcessing"
|
|
)
|
|
DOCUMENT_MANAGEMENT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryDocumentManagement"
|
|
)
|
|
EMPLOYEE_MANAGEMENT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryEmployeeManagement"
|
|
)
|
|
ENGINEERING
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryEngineering"
|
|
)
|
|
FINANCE
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryFinance"
|
|
)
|
|
IDENTITY_PROVIDER
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryIdentityProvider"
|
|
)
|
|
IT @goEnum(value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryIT")
|
|
MARKETING
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryMarketing"
|
|
)
|
|
OFFICE_OPERATIONS
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryOfficeOperations"
|
|
)
|
|
OTHER
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryOther")
|
|
PASSWORD_MANAGEMENT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryPasswordManagement"
|
|
)
|
|
PRODUCT_AND_DESIGN
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryProductAndDesign"
|
|
)
|
|
PROFESSIONAL_SERVICES
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryProfessionalServices"
|
|
)
|
|
RECRUITING
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryRecruiting"
|
|
)
|
|
SALES
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.VendorCategorySales")
|
|
SECURITY
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategorySecurity"
|
|
)
|
|
VERSION_CONTROL
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorCategoryVersionControl"
|
|
)
|
|
}
|
|
|
|
enum DocumentType
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DocumentType") {
|
|
OTHER
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DocumentTypeOther")
|
|
ISMS @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DocumentTypeISMS")
|
|
POLICY
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DocumentTypePolicy")
|
|
}
|
|
|
|
enum AssetType
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.AssetType") {
|
|
PHYSICAL
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.AssetTypePhysical")
|
|
VIRTUAL
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.AssetTypeVirtual")
|
|
}
|
|
|
|
enum CriticityLevel
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.CriticityLevel") {
|
|
LOW @goEnum(value: "github.com/getprobo/probo/pkg/coredata.CriticityLevelLow")
|
|
MEDIUM
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.CriticityLevelMedium"
|
|
)
|
|
HIGH
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.CriticityLevelHigh")
|
|
}
|
|
|
|
enum AssetOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.AssetOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.AssetOrderFieldCreatedAt"
|
|
)
|
|
AMOUNT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.AssetOrderFieldAmount"
|
|
)
|
|
CRITICITY
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.AssetOrderFieldCriticity"
|
|
)
|
|
}
|
|
|
|
enum DatumOrderField
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DatumOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldCreatedAt"
|
|
)
|
|
NAME
|
|
@goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldName")
|
|
DATA_CLASSIFICATION
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldDataClassification"
|
|
)
|
|
}
|
|
|
|
enum DataClassification
|
|
@goModel(model: "github.com/getprobo/probo/pkg/coredata.DataClassification") {
|
|
PUBLIC
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataClassificationPublic"
|
|
)
|
|
INTERNAL
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataClassificationInternal"
|
|
)
|
|
CONFIDENTIAL
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataClassificationConfidential"
|
|
)
|
|
SECRET
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DataClassificationSecret"
|
|
)
|
|
}
|
|
# Input Types
|
|
input UserOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.UserOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: UserOrderField!
|
|
}
|
|
|
|
input PeopleOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.PeopleOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: PeopleOrderField!
|
|
}
|
|
|
|
input VendorOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.VendorOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: VendorOrderField!
|
|
}
|
|
|
|
input FrameworkOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.FrameworkOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: FrameworkOrderField!
|
|
}
|
|
|
|
input ControlOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.ControlOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: ControlOrderField!
|
|
}
|
|
|
|
input MeasureOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.MeasureOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: MeasureOrderField!
|
|
}
|
|
|
|
input TaskOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.TaskOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: TaskOrderField!
|
|
}
|
|
|
|
input DocumentOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.DocumentOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: DocumentOrderField!
|
|
}
|
|
|
|
input RiskOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.RiskOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: RiskOrderField!
|
|
}
|
|
|
|
input EvidenceOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.EvidenceOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: EvidenceOrderField!
|
|
}
|
|
|
|
input VendorComplianceReportOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.VendorComplianceReportOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: VendorComplianceReportOrderField!
|
|
}
|
|
|
|
input OrganizationOrder {
|
|
direction: OrderDirection!
|
|
field: OrganizationOrderField!
|
|
}
|
|
|
|
input ConnectorOrder {
|
|
field: ConnectorOrderField!
|
|
direction: OrderDirection!
|
|
}
|
|
|
|
input DocumentVersionOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.DocumentVersionOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: DocumentVersionOrderField!
|
|
}
|
|
|
|
input DocumentVersionFilter {
|
|
status: DocumentStatus
|
|
}
|
|
|
|
# Input Types for Filtering
|
|
input ControlFilter {
|
|
query: String
|
|
}
|
|
|
|
input DocumentFilter {
|
|
query: String
|
|
}
|
|
|
|
input MeasureFilter {
|
|
query: String
|
|
}
|
|
|
|
input RiskFilter {
|
|
query: String
|
|
}
|
|
|
|
# Core Types
|
|
type Organization implements Node {
|
|
id: ID!
|
|
name: String!
|
|
logoUrl: String @goField(forceResolver: true)
|
|
|
|
users(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: UserOrder
|
|
): UserConnection! @goField(forceResolver: true)
|
|
|
|
connectors(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: ConnectorOrder
|
|
): ConnectorConnection! @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
|
|
): VendorConnection! @goField(forceResolver: true)
|
|
|
|
peoples(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: PeopleOrder
|
|
): PeopleConnection! @goField(forceResolver: true)
|
|
|
|
documents(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: DocumentOrder
|
|
filter: DocumentFilter
|
|
): DocumentConnection! @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
|
|
): 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
|
|
): AssetConnection! @goField(forceResolver: true)
|
|
|
|
data(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: DatumOrder
|
|
): DatumConnection! @goField(forceResolver: true)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type User implements Node {
|
|
id: ID!
|
|
fullName: String!
|
|
email: String!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
people(organizationId: ID!): People @goField(forceResolver: true)
|
|
}
|
|
|
|
type Connector implements Node {
|
|
id: ID!
|
|
name: String!
|
|
type: String!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type People implements Node {
|
|
id: ID!
|
|
fullName: String!
|
|
primaryEmailAddress: String!
|
|
additionalEmailAddresses: [String!]!
|
|
kind: PeopleKind!
|
|
position: String
|
|
contractStartDate: Datetime
|
|
contractEndDate: Datetime
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type Vendor implements Node {
|
|
id: 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)
|
|
|
|
riskAssessments(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: VendorRiskAssessmentOrder
|
|
): VendorRiskAssessmentConnection! @goField(forceResolver: true)
|
|
|
|
businessOwner: People @goField(forceResolver: true)
|
|
securityOwner: People @goField(forceResolver: true)
|
|
|
|
statusPageUrl: String
|
|
termsOfServiceUrl: String
|
|
privacyPolicyUrl: String
|
|
serviceLevelAgreementUrl: String
|
|
dataProcessingAgreementUrl: String
|
|
businessAssociateAgreementUrl: String
|
|
subprocessorsListUrl: String
|
|
certifications: [String!]!
|
|
securityPageUrl: String
|
|
trustPageUrl: String
|
|
headquarterAddress: String
|
|
legalName: String
|
|
websiteUrl: String
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type VendorComplianceReport implements Node {
|
|
id: ID!
|
|
vendor: Vendor! @goField(forceResolver: true)
|
|
reportDate: Datetime!
|
|
validUntil: Datetime
|
|
reportName: String!
|
|
fileUrl: String! @goField(forceResolver: true)
|
|
fileSize: Int!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
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)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type Control implements Node {
|
|
id: ID!
|
|
sectionTitle: String!
|
|
name: String!
|
|
description: String!
|
|
|
|
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)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
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!
|
|
}
|
|
|
|
type Task implements Node {
|
|
id: ID!
|
|
name: String!
|
|
description: String!
|
|
state: TaskState!
|
|
timeEstimate: Duration
|
|
deadline: Datetime
|
|
assignedTo: People @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!
|
|
}
|
|
|
|
type Evidence implements Node {
|
|
id: ID!
|
|
fileUrl: String @goField(forceResolver: true)
|
|
mimeType: String!
|
|
size: Int!
|
|
state: EvidenceState!
|
|
type: EvidenceType!
|
|
filename: String!
|
|
url: String
|
|
description: String!
|
|
|
|
task: Task @goField(forceResolver: true)
|
|
measure: Measure! @goField(forceResolver: true)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type Document implements Node {
|
|
id: ID!
|
|
title: String!
|
|
description: String!
|
|
documentType: DocumentType!
|
|
currentPublishedVersion: Int
|
|
owner: People! @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)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type Risk implements Node {
|
|
id: ID!
|
|
name: String!
|
|
description: String!
|
|
category: String!
|
|
treatment: RiskTreatment!
|
|
inherentLikelihood: Int!
|
|
inherentImpact: Int!
|
|
inherentRiskScore: Int!
|
|
residualLikelihood: Int!
|
|
residualImpact: Int!
|
|
residualRiskScore: Int!
|
|
note: String!
|
|
|
|
owner: People @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)
|
|
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type Session {
|
|
id: ID!
|
|
expiresAt: Datetime!
|
|
}
|
|
|
|
type Viewer {
|
|
id: ID!
|
|
user: User!
|
|
|
|
organizations(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: OrganizationOrder
|
|
): OrganizationConnection! @goField(forceResolver: true)
|
|
}
|
|
|
|
# Connection Types
|
|
type OrganizationConnection {
|
|
edges: [OrganizationEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type OrganizationEdge {
|
|
cursor: CursorKey!
|
|
node: Organization!
|
|
}
|
|
|
|
type UserConnection {
|
|
edges: [UserEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type UserEdge {
|
|
cursor: CursorKey!
|
|
node: User!
|
|
}
|
|
|
|
type PeopleConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.PeopleConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [PeopleEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type PeopleEdge {
|
|
cursor: CursorKey!
|
|
node: People!
|
|
}
|
|
|
|
type VendorConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/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: "github.com/getprobo/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: "github.com/getprobo/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: "github.com/getprobo/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: "github.com/getprobo/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: "github.com/getprobo/probo/pkg/server/api/console/v1/types.EvidenceConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [EvidenceEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type EvidenceEdge {
|
|
cursor: CursorKey!
|
|
node: Evidence!
|
|
}
|
|
|
|
type DocumentConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.DocumentConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [DocumentEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type DocumentEdge {
|
|
cursor: CursorKey!
|
|
node: Document!
|
|
}
|
|
|
|
type RiskConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/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 ConnectorConnection {
|
|
edges: [ConnectorEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type ConnectorEdge {
|
|
cursor: CursorKey!
|
|
node: Connector!
|
|
}
|
|
|
|
type VendorRiskAssessmentConnection {
|
|
edges: [VendorRiskAssessmentEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type VendorRiskAssessmentEdge {
|
|
cursor: CursorKey!
|
|
node: VendorRiskAssessment!
|
|
}
|
|
|
|
type DocumentVersionConnection {
|
|
edges: [DocumentVersionEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type DocumentVersionEdge {
|
|
cursor: CursorKey!
|
|
node: DocumentVersion!
|
|
}
|
|
|
|
type DatumConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.DatumConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [DatumEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type DatumEdge {
|
|
cursor: CursorKey!
|
|
node: Datum!
|
|
}
|
|
|
|
# Root Types
|
|
type Query {
|
|
node(id: ID!): Node!
|
|
viewer: Viewer!
|
|
}
|
|
|
|
type Mutation {
|
|
# Organization mutations
|
|
createOrganization(
|
|
input: CreateOrganizationInput!
|
|
): CreateOrganizationPayload!
|
|
updateOrganization(
|
|
input: UpdateOrganizationInput!
|
|
): UpdateOrganizationPayload!
|
|
|
|
# User mutations
|
|
confirmEmail(input: ConfirmEmailInput!): ConfirmEmailPayload!
|
|
inviteUser(input: InviteUserInput!): InviteUserPayload!
|
|
removeUser(input: RemoveUserInput!): RemoveUserPayload!
|
|
|
|
# People mutations
|
|
createPeople(input: CreatePeopleInput!): CreatePeoplePayload!
|
|
updatePeople(input: UpdatePeopleInput!): UpdatePeoplePayload!
|
|
deletePeople(input: DeletePeopleInput!): DeletePeoplePayload!
|
|
|
|
# Vendor mutations
|
|
createVendor(input: CreateVendorInput!): CreateVendorPayload!
|
|
updateVendor(input: UpdateVendorInput!): UpdateVendorPayload!
|
|
deleteVendor(input: DeleteVendorInput!): DeleteVendorPayload!
|
|
|
|
# Framework mutations
|
|
createFramework(input: CreateFrameworkInput!): CreateFrameworkPayload!
|
|
updateFramework(input: UpdateFrameworkInput!): UpdateFrameworkPayload!
|
|
importFramework(input: ImportFrameworkInput!): ImportFrameworkPayload!
|
|
deleteFramework(input: DeleteFrameworkInput!): DeleteFrameworkPayload!
|
|
generateFrameworkStateOfApplicability(
|
|
input: GenerateFrameworkStateOfApplicabilityInput!
|
|
): GenerateFrameworkStateOfApplicabilityPayload!
|
|
|
|
# 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!
|
|
|
|
# Task mutations
|
|
createTask(input: CreateTaskInput!): CreateTaskPayload!
|
|
updateTask(input: UpdateTaskInput!): UpdateTaskPayload!
|
|
deleteTask(input: DeleteTaskInput!): DeleteTaskPayload!
|
|
assignTask(input: AssignTaskInput!): AssignTaskPayload!
|
|
unassignTask(input: UnassignTaskInput!): UnassignTaskPayload!
|
|
|
|
# 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!
|
|
|
|
# Evidence mutations
|
|
requestEvidence(input: RequestEvidenceInput!): RequestEvidencePayload!
|
|
fulfillEvidence(input: FulfillEvidenceInput!): FulfillEvidencePayload!
|
|
deleteEvidence(input: DeleteEvidenceInput!): DeleteEvidencePayload!
|
|
uploadTaskEvidence(
|
|
input: UploadTaskEvidenceInput!
|
|
): UploadTaskEvidencePayload!
|
|
uploadMeasureEvidence(
|
|
input: UploadMeasureEvidenceInput!
|
|
): UploadMeasureEvidencePayload!
|
|
|
|
# Vendor Compliance Report mutations
|
|
uploadVendorComplianceReport(
|
|
input: UploadVendorComplianceReportInput!
|
|
): UploadVendorComplianceReportPayload!
|
|
deleteVendorComplianceReport(
|
|
input: DeleteVendorComplianceReportInput!
|
|
): DeleteVendorComplianceReportPayload!
|
|
|
|
# Document mutations
|
|
createDocument(input: CreateDocumentInput!): CreateDocumentPayload!
|
|
updateDocument(input: UpdateDocumentInput!): UpdateDocumentPayload!
|
|
deleteDocument(input: DeleteDocumentInput!): DeleteDocumentPayload!
|
|
publishDocumentVersion(
|
|
input: PublishDocumentVersionInput!
|
|
): PublishDocumentVersionPayload!
|
|
bulkPublishDocumentVersions(
|
|
input: BulkPublishDocumentVersionsInput!
|
|
): BulkPublishDocumentVersionsPayload!
|
|
generateDocumentChangelog(
|
|
input: GenerateDocumentChangelogInput!
|
|
): GenerateDocumentChangelogPayload!
|
|
createDraftDocumentVersion(
|
|
input: CreateDraftDocumentVersionInput!
|
|
): CreateDraftDocumentVersionPayload!
|
|
updateDocumentVersion(
|
|
input: UpdateDocumentVersionInput!
|
|
): UpdateDocumentVersionPayload!
|
|
requestSignature(input: RequestSignatureInput!): RequestSignaturePayload!
|
|
sendSigningNotifications(
|
|
input: SendSigningNotificationsInput!
|
|
): SendSigningNotificationsPayload!
|
|
cancelSignatureRequest(
|
|
input: CancelSignatureRequestInput!
|
|
): CancelSignatureRequestPayload!
|
|
exportDocumentVersionPDF(
|
|
input: ExportDocumentVersionPDFInput!
|
|
): ExportDocumentVersionPDFPayload!
|
|
|
|
createVendorRiskAssessment(
|
|
input: CreateVendorRiskAssessmentInput!
|
|
): CreateVendorRiskAssessmentPayload!
|
|
|
|
exportAudit(input: ExportAuditInput!): ExportAuditPayload!
|
|
|
|
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!
|
|
}
|
|
|
|
# Input Types
|
|
input GenerateFrameworkStateOfApplicabilityInput {
|
|
frameworkId: ID!
|
|
}
|
|
|
|
type GenerateFrameworkStateOfApplicabilityPayload {
|
|
downloadUrl: String!
|
|
}
|
|
|
|
input CreateOrganizationInput {
|
|
name: String!
|
|
}
|
|
|
|
input UpdateOrganizationInput {
|
|
organizationId: ID!
|
|
name: String
|
|
logo: Upload
|
|
}
|
|
|
|
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!]
|
|
securityPageUrl: String
|
|
trustPageUrl: String
|
|
statusPageUrl: String
|
|
termsOfServiceUrl: String
|
|
businessOwnerId: ID
|
|
securityOwnerId: ID
|
|
}
|
|
|
|
input UpdateVendorInput {
|
|
id: ID!
|
|
name: String
|
|
description: String
|
|
statusPageUrl: String
|
|
termsOfServiceUrl: String
|
|
privacyPolicyUrl: String
|
|
serviceLevelAgreementUrl: String
|
|
dataProcessingAgreementUrl: String
|
|
businessAssociateAgreementUrl: String
|
|
subprocessorsListUrl: String
|
|
websiteUrl: String
|
|
legalName: String
|
|
headquarterAddress: String
|
|
category: VendorCategory
|
|
certifications: [String!]
|
|
securityPageUrl: String
|
|
trustPageUrl: String
|
|
businessOwnerId: ID
|
|
securityOwnerId: ID
|
|
}
|
|
|
|
input DeleteVendorInput {
|
|
vendorId: ID!
|
|
}
|
|
|
|
input CreatePeopleInput {
|
|
organizationId: ID!
|
|
fullName: String!
|
|
primaryEmailAddress: String!
|
|
additionalEmailAddresses: [String!]
|
|
kind: PeopleKind!
|
|
position: String
|
|
contractStartDate: Datetime
|
|
contractEndDate: Datetime
|
|
}
|
|
|
|
input UpdatePeopleInput {
|
|
id: ID!
|
|
fullName: String
|
|
primaryEmailAddress: String
|
|
additionalEmailAddresses: [String!]
|
|
kind: PeopleKind
|
|
position: String
|
|
contractStartDate: Datetime
|
|
contractEndDate: Datetime
|
|
}
|
|
|
|
input DeletePeopleInput {
|
|
peopleId: ID!
|
|
}
|
|
|
|
input CreateFrameworkInput {
|
|
organizationId: ID!
|
|
name: String!
|
|
description: String!
|
|
}
|
|
|
|
input UpdateFrameworkInput {
|
|
id: ID!
|
|
name: String
|
|
description: String
|
|
}
|
|
|
|
input ImportFrameworkInput {
|
|
organizationId: ID!
|
|
file: Upload!
|
|
}
|
|
|
|
input DeleteFrameworkInput {
|
|
frameworkId: ID!
|
|
}
|
|
|
|
input CreateMeasureInput {
|
|
organizationId: ID!
|
|
name: String!
|
|
description: String!
|
|
category: String!
|
|
}
|
|
|
|
input UpdateMeasureInput {
|
|
id: ID!
|
|
name: String
|
|
description: String
|
|
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
|
|
state: TaskState
|
|
timeEstimate: Duration
|
|
deadline: Datetime
|
|
}
|
|
|
|
input DeleteTaskInput {
|
|
taskId: ID!
|
|
}
|
|
|
|
input AssignTaskInput {
|
|
taskId: ID!
|
|
assignedToId: ID!
|
|
}
|
|
|
|
input UnassignTaskInput {
|
|
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 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
|
|
category: String
|
|
ownerId: ID
|
|
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 RequestEvidenceInput {
|
|
taskId: ID!
|
|
name: String!
|
|
type: EvidenceType!
|
|
description: String!
|
|
}
|
|
|
|
input FulfillEvidenceInput {
|
|
evidenceId: ID!
|
|
name: String
|
|
file: Upload
|
|
url: String
|
|
}
|
|
|
|
input CreateEvidenceInput {
|
|
taskId: ID!
|
|
name: String!
|
|
type: EvidenceType!
|
|
url: String
|
|
file: Upload
|
|
description: String!
|
|
}
|
|
|
|
input DeleteEvidenceInput {
|
|
evidenceId: ID!
|
|
}
|
|
|
|
input UploadVendorComplianceReportInput {
|
|
vendorId: ID!
|
|
reportDate: Datetime!
|
|
validUntil: Datetime
|
|
reportName: String!
|
|
file: Upload!
|
|
}
|
|
|
|
input DeleteVendorComplianceReportInput {
|
|
reportId: ID!
|
|
}
|
|
|
|
input CreateDocumentInput {
|
|
organizationId: ID!
|
|
title: String!
|
|
content: String!
|
|
ownerId: ID!
|
|
documentType: DocumentType!
|
|
}
|
|
|
|
input UpdateDocumentInput {
|
|
id: ID!
|
|
title: String
|
|
content: String
|
|
ownerId: ID
|
|
createdBy: ID
|
|
documentType: DocumentType
|
|
}
|
|
|
|
input ExportDocumentVersionPDFInput {
|
|
documentVersionId: ID!
|
|
}
|
|
|
|
input DeleteDocumentInput {
|
|
documentId: ID!
|
|
}
|
|
|
|
input ConfirmEmailInput {
|
|
token: String!
|
|
}
|
|
|
|
input InviteUserInput {
|
|
organizationId: ID!
|
|
email: String!
|
|
fullName: String!
|
|
}
|
|
|
|
input RemoveUserInput {
|
|
organizationId: ID!
|
|
userId: ID!
|
|
}
|
|
|
|
input CreateControlInput {
|
|
frameworkId: ID!
|
|
sectionTitle: String!
|
|
name: String!
|
|
description: String!
|
|
}
|
|
|
|
input UpdateControlInput {
|
|
id: ID!
|
|
sectionTitle: String
|
|
name: String
|
|
description: String
|
|
}
|
|
|
|
input DeleteControlInput {
|
|
controlId: ID!
|
|
}
|
|
|
|
# Payload Types
|
|
type CreateOrganizationPayload {
|
|
organizationEdge: OrganizationEdge!
|
|
}
|
|
|
|
type UpdateOrganizationPayload {
|
|
organization: Organization!
|
|
}
|
|
|
|
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 CreatePeoplePayload {
|
|
peopleEdge: PeopleEdge!
|
|
}
|
|
|
|
type UpdatePeoplePayload {
|
|
people: People!
|
|
}
|
|
|
|
type DeletePeoplePayload {
|
|
deletedPeopleId: ID!
|
|
}
|
|
|
|
type CreateFrameworkPayload {
|
|
frameworkEdge: FrameworkEdge!
|
|
}
|
|
|
|
type UpdateFrameworkPayload {
|
|
framework: Framework!
|
|
}
|
|
|
|
type ImportFrameworkPayload {
|
|
frameworkEdge: FrameworkEdge!
|
|
}
|
|
|
|
type DeleteFrameworkPayload {
|
|
deletedFrameworkId: 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 AssignTaskPayload {
|
|
task: Task!
|
|
}
|
|
|
|
type UnassignTaskPayload {
|
|
task: Task!
|
|
}
|
|
|
|
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 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 RequestEvidencePayload {
|
|
evidenceEdge: EvidenceEdge!
|
|
}
|
|
|
|
type FulfillEvidencePayload {
|
|
evidenceEdge: EvidenceEdge!
|
|
}
|
|
|
|
type CreateEvidencePayload {
|
|
evidenceEdge: EvidenceEdge!
|
|
}
|
|
|
|
type DeleteEvidencePayload {
|
|
deletedEvidenceId: ID!
|
|
}
|
|
|
|
type UploadVendorComplianceReportPayload {
|
|
vendorComplianceReportEdge: VendorComplianceReportEdge!
|
|
}
|
|
|
|
type DeleteVendorComplianceReportPayload {
|
|
deletedVendorComplianceReportId: ID!
|
|
}
|
|
|
|
type CreateDocumentPayload {
|
|
documentEdge: DocumentEdge!
|
|
documentVersionEdge: DocumentVersionEdge!
|
|
}
|
|
|
|
type ExportDocumentVersionPDFPayload {
|
|
data: String!
|
|
}
|
|
|
|
type UpdateDocumentPayload {
|
|
document: Document!
|
|
}
|
|
|
|
type DeleteDocumentPayload {
|
|
deletedDocumentId: ID!
|
|
}
|
|
|
|
type ConfirmEmailPayload {
|
|
success: Boolean!
|
|
}
|
|
|
|
type InviteUserPayload {
|
|
success: Boolean!
|
|
}
|
|
|
|
type RemoveUserPayload {
|
|
success: Boolean!
|
|
}
|
|
|
|
input VendorRiskAssessmentOrder {
|
|
field: VendorRiskAssessmentOrderField!
|
|
direction: OrderDirection!
|
|
}
|
|
|
|
type VendorRiskAssessment implements Node {
|
|
id: ID!
|
|
vendor: Vendor! @goField(forceResolver: true)
|
|
assessedAt: Datetime!
|
|
assessedBy: People! @goField(forceResolver: true)
|
|
expiresAt: Datetime!
|
|
dataSensitivity: DataSensitivity!
|
|
businessImpact: BusinessImpact!
|
|
notes: String
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
enum VendorRiskAssessmentOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.VendorRiskAssessmentOrderField"
|
|
) {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorRiskAssessmentOrderFieldCreatedAt"
|
|
)
|
|
EXPIRES_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorRiskAssessmentOrderFieldExpiresAt"
|
|
)
|
|
ASSESSED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.VendorRiskAssessmentOrderFieldAssessedAt"
|
|
)
|
|
}
|
|
|
|
input CreateVendorRiskAssessmentInput {
|
|
vendorId: ID!
|
|
assessedBy: 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: DocumentStatus!
|
|
version: Int!
|
|
content: String!
|
|
changelog: String!
|
|
title: String!
|
|
owner: People! @goField(forceResolver: true)
|
|
|
|
signatures(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: DocumentVersionSignatureOrder
|
|
): DocumentVersionSignatureConnection! @goField(forceResolver: true)
|
|
|
|
publishedBy: People @goField(forceResolver: true)
|
|
publishedAt: Datetime
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type DocumentVersionSignatureConnection {
|
|
edges: [DocumentVersionSignatureEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type DocumentVersionSignatureEdge {
|
|
cursor: CursorKey!
|
|
node: DocumentVersionSignature!
|
|
}
|
|
|
|
input DocumentVersionSignatureOrder {
|
|
field: DocumentVersionSignatureOrderField!
|
|
direction: OrderDirection!
|
|
}
|
|
|
|
enum DocumentVersionSignatureState
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureState"
|
|
) {
|
|
REQUESTED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureStateRequested"
|
|
)
|
|
SIGNED
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureStateSigned"
|
|
)
|
|
}
|
|
|
|
enum DocumentVersionSignatureOrderField
|
|
@goModel(
|
|
model: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureOrderField"
|
|
) {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureOrderFieldCreatedAt"
|
|
)
|
|
SIGNED_AT
|
|
@goEnum(
|
|
value: "github.com/getprobo/probo/pkg/coredata.DocumentVersionSignatureOrderFieldSignedAt"
|
|
)
|
|
}
|
|
|
|
type DocumentVersionSignature implements Node {
|
|
id: ID!
|
|
documentVersion: DocumentVersion! @goField(forceResolver: true)
|
|
state: DocumentVersionSignatureState!
|
|
signedBy: People! @goField(forceResolver: true)
|
|
signedAt: Datetime
|
|
requestedAt: Datetime!
|
|
requestedBy: People! @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
input RequestSignatureInput {
|
|
documentVersionId: ID!
|
|
signatoryId: ID!
|
|
}
|
|
|
|
type RequestSignaturePayload {
|
|
documentVersionSignatureEdge: DocumentVersionSignatureEdge!
|
|
}
|
|
|
|
input BulkPublishDocumentVersionsInput {
|
|
documentIds: [ID!]!
|
|
changelog: String!
|
|
}
|
|
|
|
type BulkPublishDocumentVersionsPayload {
|
|
documentVersionEdges: [DocumentVersionEdge!]!
|
|
documentEdges: [DocumentEdge!]!
|
|
}
|
|
|
|
input PublishDocumentVersionInput {
|
|
documentId: ID!
|
|
changelog: String
|
|
}
|
|
|
|
type PublishDocumentVersionPayload {
|
|
documentVersion: DocumentVersion!
|
|
document: Document!
|
|
}
|
|
|
|
type CreateDraftDocumentVersionPayload {
|
|
documentVersionEdge: DocumentVersionEdge!
|
|
}
|
|
|
|
input CreateDraftDocumentVersionInput {
|
|
documentID: 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!
|
|
}
|
|
|
|
type UploadTaskEvidencePayload {
|
|
evidenceEdge: EvidenceEdge!
|
|
}
|
|
|
|
type UploadMeasureEvidencePayload {
|
|
evidenceEdge: EvidenceEdge!
|
|
}
|
|
|
|
input UploadTaskEvidenceInput {
|
|
taskId: ID!
|
|
file: Upload!
|
|
}
|
|
|
|
input UploadMeasureEvidenceInput {
|
|
measureId: ID!
|
|
file: Upload!
|
|
}
|
|
|
|
input ExportAuditInput {
|
|
frameworkId: ID!
|
|
}
|
|
|
|
type ExportAuditPayload {
|
|
url: String!
|
|
}
|
|
|
|
input GenerateDocumentChangelogInput {
|
|
documentId: ID!
|
|
}
|
|
|
|
type GenerateDocumentChangelogPayload {
|
|
changelog: String!
|
|
}
|
|
|
|
input AssessVendorInput {
|
|
id: ID!
|
|
websiteUrl: String!
|
|
}
|
|
|
|
type AssessVendorPayload {
|
|
vendor: Vendor!
|
|
}
|
|
|
|
type Asset implements Node {
|
|
id: ID!
|
|
name: String!
|
|
amount: Int!
|
|
owner: People! @goField(forceResolver: true)
|
|
vendors(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: VendorOrder
|
|
): VendorConnection! @goField(forceResolver: true)
|
|
criticity: CriticityLevel!
|
|
assetType: AssetType! @goField(forceResolver: true)
|
|
dataTypesStored: String!
|
|
organization: Organization! @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type AssetConnection
|
|
@goModel(
|
|
model: "github.com/getprobo/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: "github.com/getprobo/probo/pkg/server/api/console/v1/types.AssetOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: AssetOrderField!
|
|
}
|
|
|
|
input CreateAssetInput {
|
|
organizationId: ID!
|
|
name: String!
|
|
amount: Int!
|
|
ownerId: ID!
|
|
criticity: CriticityLevel! = MEDIUM
|
|
assetType: AssetType!
|
|
dataTypesStored: String!
|
|
vendorIds: [ID!]
|
|
}
|
|
|
|
input UpdateAssetInput {
|
|
id: ID!
|
|
name: String
|
|
amount: Int
|
|
ownerId: ID
|
|
criticity: CriticityLevel
|
|
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 {
|
|
id: ID!
|
|
name: String!
|
|
dataClassification: DataClassification!
|
|
owner: People! @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!
|
|
}
|
|
|
|
input DatumOrder
|
|
@goModel(
|
|
model: "github.com/getprobo/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!
|
|
}
|