# 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 directive @nda on FIELD_DEFINITION | OBJECT scalar CursorKey scalar Datetime scalar EmailAddr interface Node { id: ID! } type PageInfo { hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: CursorKey endCursor: CursorKey } type Identity implements Node { id: ID! email: EmailAddr! fullName: String! emailVerified: Boolean! createdAt: Datetime! updatedAt: Datetime! } type Organization implements Node { id: ID! name: String! logoUrl: String @goField(forceResolver: true) description: String websiteUrl: String email: String headquarterAddress: String } 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") } type Document implements Node @nda { id: ID! title: String! documentType: DocumentType! isUserAuthorized: Boolean! @goField(forceResolver: true) access: DocumentAccess @goField(forceResolver: true) } type DocumentConnection @nda { edges: [DocumentEdge!]! pageInfo: PageInfo! } type DocumentEdge @nda { cursor: CursorKey! node: Document! } type Framework implements Node @nda { id: ID! name: String! lightLogoURL: String @goField(forceResolver: true) darkLogoURL: String @goField(forceResolver: true) } type Report implements Node @nda { id: ID! filename: String! isUserAuthorized: Boolean! @goField(forceResolver: true) access: DocumentAccess @goField(forceResolver: true) } type Audit implements Node @nda { id: ID! name: String framework: Framework! @goField(forceResolver: true) report: Report @goField(forceResolver: true) } type AuditConnection @nda { edges: [AuditEdge!]! pageInfo: PageInfo! } type AuditEdge @nda { cursor: CursorKey! node: Audit! } type ComplianceFramework implements Node @goModel( model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFramework" ) { id: ID! framework: Framework! @goField(forceResolver: true) } type ComplianceFrameworkConnection @goModel( model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkConnection" ) { edges: [ComplianceFrameworkEdge!]! pageInfo: PageInfo! } type ComplianceFrameworkEdge @goModel( model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkEdge" ) { cursor: CursorKey! node: ComplianceFramework! } type MailingListUpdate implements Node { id: ID! title: String! body: String! updatedAt: Datetime! } type MailingListUpdateConnection { edges: [MailingListUpdateEdge!]! pageInfo: PageInfo! } type MailingListUpdateEdge { cursor: CursorKey! node: MailingListUpdate! } 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 SubprocessorCategory @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" ) } type Subprocessor implements Node @nda { id: ID! name: String! description: String category: SubprocessorCategory! websiteUrl: String privacyPolicyUrl: String countries: [CountryCode!]! } type SubprocessorConnection @goModel( model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.SubprocessorConnection" ) @nda { edges: [SubprocessorEdge!]! pageInfo: PageInfo! totalCount: Int! @goField(forceResolver: true) } type SubprocessorEdge @nda { cursor: CursorKey! node: Subprocessor! } type TrustCenterReference implements Node @nda { id: ID! name: String! description: String websiteUrl: String! logoUrl: String! @goField(forceResolver: true) } type TrustCenterReferenceConnection @nda { edges: [TrustCenterReferenceEdge!]! pageInfo: PageInfo! } type TrustCenterReferenceEdge @nda { cursor: CursorKey! node: TrustCenterReference! } type TrustCenterFile implements Node @nda { id: ID! name: String! category: String! isUserAuthorized: Boolean! @goField(forceResolver: true) access: DocumentAccess @goField(forceResolver: true) } type TrustCenterFileConnection @nda { edges: [TrustCenterFileEdge!]! pageInfo: PageInfo! } type TrustCenterFileEdge @nda { cursor: CursorKey! node: TrustCenterFile! } type NonDisclosureAgreement { fileName: String! fileUrl: String! @goField(forceResolver: true) viewerSignature: ElectronicSignature @goField(forceResolver: true) } type TrustCenter implements Node { id: ID! active: Boolean! slug: String! logoFileUrl: String @goField(forceResolver: true) darkLogoFileUrl: String @goField(forceResolver: true) nonDisclosureAgreement: NonDisclosureAgreement @goField(forceResolver: true) viewerSubscription: MailingListSubscriber @goField(forceResolver: true) organization: Organization! @goField(forceResolver: true) documents( first: Int after: CursorKey last: Int before: CursorKey ): DocumentConnection! @goField(forceResolver: true) audits( first: Int after: CursorKey last: Int before: CursorKey ): AuditConnection! @goField(forceResolver: true) subprocessors( first: Int after: CursorKey last: Int before: CursorKey ): SubprocessorConnection! @goField(forceResolver: true) references( first: Int after: CursorKey last: Int before: CursorKey ): TrustCenterReferenceConnection! @goField(forceResolver: true) trustCenterFiles( first: Int after: CursorKey last: Int before: CursorKey ): TrustCenterFileConnection! @goField(forceResolver: true) complianceFrameworks( first: Int after: CursorKey last: Int before: CursorKey ): ComplianceFrameworkConnection! @goField(forceResolver: true) externalUrls( first: Int after: CursorKey last: Int before: CursorKey ): ComplianceExternalURLConnection! @goField(forceResolver: true) updates( first: Int after: CursorKey last: Int before: CursorKey ): MailingListUpdateConnection! @goField(forceResolver: true) } type ComplianceExternalURL implements Node { id: ID! name: String! url: String! rank: Int! } type ComplianceExternalURLConnection { edges: [ComplianceExternalURLEdge!]! pageInfo: PageInfo! } type ComplianceExternalURLEdge { cursor: CursorKey! node: ComplianceExternalURL! } type TrustCenterAccess implements Node { id: ID! email: EmailAddr! name: String! createdAt: Datetime! updatedAt: Datetime! } enum DocumentAccessStatus @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" ) } type DocumentAccess implements Node { id: ID! status: DocumentAccessStatus! } input SendMagicLinkInput { email: EmailAddr! continue: String } type SendMagicLinkPayload { success: Boolean! } input VerifyMagicLinkInput { token: String! } type VerifyMagicLinkPayload { continue: String } input UpdateFullNameInput { fullName: String! } type UpdateFullNamePayload { success: Boolean! } type RequestDocumentAccessPayload { document: Document } type RequestReportAccessPayload { audit: Audit } type RequestFileAccessPayload { file: TrustCenterFile } type RequestAccessesPayload { trustCenterAccess: TrustCenterAccess! } input ExportDocumentPDFInput { documentId: ID! } input ExportReportPDFInput { reportId: ID! } input RequestDocumentAccessInput { documentId: ID! } input RequestReportAccessInput { reportId: ID! } input RequestTrustCenterFileAccessInput { trustCenterFileId: ID! } input ExportTrustCenterFileInput { trustCenterFileId: ID! } type ExportDocumentPDFPayload { data: String! } type ExportReportPDFPayload { data: String! } type ExportTrustCenterFilePayload { data: String! } # 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" ) } type ElectronicSignature implements Node { id: ID! status: ElectronicSignatureStatus! documentType: ElectronicSignatureDocumentType! consentText: String! lastError: String signedAt: Datetime createdAt: Datetime! updatedAt: Datetime! } input AcceptElectronicSignatureInput { signatureId: ID! } type AcceptElectronicSignaturePayload { signature: ElectronicSignature! } input RecordSigningEventInput { signatureId: ID! eventType: ElectronicSignatureEventType! } type RecordSigningEventPayload { success: Boolean! } type OIDCProviderInfo { name: String! loginURL: String! } type Query { viewer: Identity node(id: ID!): Node currentTrustCenter: TrustCenter oidcProviders: [OIDCProviderInfo!]! @goField(forceResolver: true) @session(required: OPTIONAL) } type Mutation { sendMagicLink(input: SendMagicLinkInput!): SendMagicLinkPayload @session(required: OPTIONAL) verifyMagicLink(input: VerifyMagicLinkInput!): VerifyMagicLinkPayload @session(required: OPTIONAL) updateFullName(input: UpdateFullNameInput!): UpdateFullNamePayload @session(required: PRESENT) requestAllAccesses: RequestAccessesPayload! @session(required: PRESENT) @nda exportDocumentPDF(input: ExportDocumentPDFInput!): ExportDocumentPDFPayload! @session(required: OPTIONAL) @nda exportReportPDF(input: ExportReportPDFInput!): ExportReportPDFPayload! @session(required: OPTIONAL) @nda exportTrustCenterFile( input: ExportTrustCenterFileInput! ): ExportTrustCenterFilePayload! @session(required: OPTIONAL) @nda requestDocumentAccess( input: RequestDocumentAccessInput! ): RequestDocumentAccessPayload! @session(required: PRESENT) @nda requestReportAccess( input: RequestReportAccessInput! ): RequestReportAccessPayload! @session(required: PRESENT) @nda requestTrustCenterFileAccess( input: RequestTrustCenterFileAccessInput! ): RequestFileAccessPayload! @session(required: PRESENT) @nda acceptElectronicSignature( input: AcceptElectronicSignatureInput! ): AcceptElectronicSignaturePayload @session(required: PRESENT) recordSigningEvent( input: RecordSigningEventInput! ): RecordSigningEventPayload @session(required: PRESENT) subscribeToMailingList: SubscribeToMailingListPayload! @session(required: PRESENT) unsubscribeFromMailingList: UnsubscribeFromMailingListPayload! @session(required: PRESENT) } type SubscribeToMailingListPayload { subscription: MailingListSubscriber! } type UnsubscribeFromMailingListPayload { deletedMailingListSubscriberId: ID } 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 @goModel( model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.MailingListSubscriber" ) { id: ID! fullName: String! email: EmailAddr! status: MailingListSubscriberStatus! createdAt: Datetime! updatedAt: Datetime! }