Split each API's monolithic schema.graphql into per-coredata-model
files under graphql/ subdirectories. gqlgen's follow-schema layout
with {name}.resolvers.go template generates one resolver file per
schema file. Relay uses schema + schemaExtensions to load the split
files.
Connect API: 8 files (base, session, organization, profile,
personal_api_key, saml, scim, audit_log)
Trust API: 5 files (base, trust_center, auth, nda, mailing_list)
Console API: 25 files covering all domain entities
Types extended across files (Organization, Mutation, Viewer,
TrustCenter, Identity) are defined in base.graphql as required by
Relay's schemaExtensions.
Signed-off-by: Émile Ré <emile@getprobo.com>
705 lines
19 KiB
GraphQL
705 lines
19 KiB
GraphQL
extend type Organization {
|
|
vendors(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: VendorOrder
|
|
filter: VendorFilter = { snapshotId: null }
|
|
): VendorConnection! @goField(forceResolver: true)
|
|
}
|
|
|
|
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 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 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 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 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 VendorOrder
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.VendorOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: VendorOrderField!
|
|
}
|
|
|
|
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 VendorRiskAssessmentOrder {
|
|
field: VendorRiskAssessmentOrderField!
|
|
direction: OrderDirection!
|
|
}
|
|
|
|
input VendorFilter {
|
|
snapshotId: ID
|
|
}
|
|
|
|
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 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)
|
|
}
|
|
|
|
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 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!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createVendor(input: CreateVendorInput!): CreateVendorPayload!
|
|
updateVendor(input: UpdateVendorInput!): UpdateVendorPayload!
|
|
deleteVendor(input: DeleteVendorInput!): DeleteVendorPayload!
|
|
createVendorContact(
|
|
input: CreateVendorContactInput!
|
|
): CreateVendorContactPayload!
|
|
updateVendorContact(
|
|
input: UpdateVendorContactInput!
|
|
): UpdateVendorContactPayload!
|
|
deleteVendorContact(
|
|
input: DeleteVendorContactInput!
|
|
): DeleteVendorContactPayload!
|
|
createVendorService(
|
|
input: CreateVendorServiceInput!
|
|
): CreateVendorServicePayload!
|
|
updateVendorService(
|
|
input: UpdateVendorServiceInput!
|
|
): UpdateVendorServicePayload!
|
|
deleteVendorService(
|
|
input: DeleteVendorServiceInput!
|
|
): DeleteVendorServicePayload!
|
|
uploadVendorComplianceReport(
|
|
input: UploadVendorComplianceReportInput!
|
|
): UploadVendorComplianceReportPayload!
|
|
deleteVendorComplianceReport(
|
|
input: DeleteVendorComplianceReportInput!
|
|
): DeleteVendorComplianceReportPayload!
|
|
uploadVendorBusinessAssociateAgreement(
|
|
input: UploadVendorBusinessAssociateAgreementInput!
|
|
): UploadVendorBusinessAssociateAgreementPayload!
|
|
updateVendorBusinessAssociateAgreement(
|
|
input: UpdateVendorBusinessAssociateAgreementInput!
|
|
): UpdateVendorBusinessAssociateAgreementPayload!
|
|
deleteVendorBusinessAssociateAgreement(
|
|
input: DeleteVendorBusinessAssociateAgreementInput!
|
|
): DeleteVendorBusinessAssociateAgreementPayload!
|
|
uploadVendorDataPrivacyAgreement(
|
|
input: UploadVendorDataPrivacyAgreementInput!
|
|
): UploadVendorDataPrivacyAgreementPayload!
|
|
updateVendorDataPrivacyAgreement(
|
|
input: UpdateVendorDataPrivacyAgreementInput!
|
|
): UpdateVendorDataPrivacyAgreementPayload!
|
|
deleteVendorDataPrivacyAgreement(
|
|
input: DeleteVendorDataPrivacyAgreementInput!
|
|
): DeleteVendorDataPrivacyAgreementPayload!
|
|
createVendorRiskAssessment(
|
|
input: CreateVendorRiskAssessmentInput!
|
|
): CreateVendorRiskAssessmentPayload!
|
|
assessVendor(input: AssessVendorInput!): AssessVendorPayload!
|
|
}
|
|
|
|
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 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 CreateVendorRiskAssessmentInput {
|
|
vendorId: ID!
|
|
expiresAt: Datetime!
|
|
dataSensitivity: DataSensitivity!
|
|
businessImpact: BusinessImpact!
|
|
notes: String
|
|
}
|
|
|
|
input AssessVendorInput {
|
|
id: ID!
|
|
websiteUrl: String!
|
|
}
|
|
|
|
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 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 CreateVendorRiskAssessmentPayload {
|
|
vendorRiskAssessmentEdge: VendorRiskAssessmentEdge!
|
|
}
|
|
|
|
type AssessVendorPayload {
|
|
vendor: Vendor!
|
|
}
|