diff --git a/.task/checksum/generate-client b/.task/checksum/generate-client index d402e62..df94557 100644 --- a/.task/checksum/generate-client +++ b/.task/checksum/generate-client @@ -1 +1 @@ -12532b6a2de151ff17239eaa2da55ba4 +137a3ddd8cfc6ddc72a0cb906b1665f3 diff --git a/go.mod b/go.mod index de8023a..0cb0ef5 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/rs/zerolog v1.35.0 github.com/samber/lo v1.53.0 - github.com/theopenlane/core/common v1.0.17 + github.com/theopenlane/core/common v1.0.18 github.com/theopenlane/entx v0.24.0 github.com/theopenlane/httpsling v0.3.0 github.com/theopenlane/iam v0.27.5 @@ -28,12 +28,12 @@ require ( github.com/bmatcuk/doublestar v1.3.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.1 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/inflect v0.21.5 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect - github.com/go-webauthn/webauthn v0.16.1 // indirect + github.com/go-webauthn/webauthn v0.16.3 // indirect github.com/go-webauthn/x v0.2.2 // indirect github.com/goccy/go-yaml v1.19.2 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect @@ -48,12 +48,14 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect + github.com/philhofer/fwd v1.2.0 // indirect github.com/redis/go-redis/v9 v9.18.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/sosodev/duration v1.4.0 // indirect github.com/stoewer/go-strcase v1.3.1 // indirect - github.com/theopenlane/core v1.14.2 // indirect + github.com/theopenlane/core v1.15.9 // indirect github.com/theopenlane/echox v0.3.0 // indirect + github.com/tinylib/msgp v1.6.3 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect diff --git a/go.sum b/go.sum index 61c48be..4f63f25 100644 --- a/go.sum +++ b/go.sum @@ -42,8 +42,8 @@ github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7c github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= -github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/fxamacker/cbor/v2 v2.9.1 h1:2rWm8B193Ll4VdjsJY28jxs70IdDsHRWgQYAI80+rMQ= +github.com/fxamacker/cbor/v2 v2.9.1/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -55,8 +55,8 @@ github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/go-webauthn/webauthn v0.16.1 h1:x5/SSki5/aIfogaRukqvbg/RXa3Sgxy/9vU7UfFPHKU= -github.com/go-webauthn/webauthn v0.16.1/go.mod h1:RBS+rtQJMkE5VfMQ4diDA2VNrEL8OeUhp4Srz37FHbQ= +github.com/go-webauthn/webauthn v0.16.3 h1:RorP0c6VbaKP0i0Jxf/vAf7EFb2lmdLW8GLKITeaN5A= +github.com/go-webauthn/webauthn v0.16.3/go.mod h1:R2xjJxSPat5PYKg5r6cUmqXgbHtbv4GmF6uGkqFMLNI= github.com/go-webauthn/x v0.2.2 h1:zIiipvMbr48CXi5RG0XdBJR94kd8I5LfzHPb/q+YYmk= github.com/go-webauthn/x v0.2.2/go.mod h1:IpJ5qyWB9NRhLX3C7gIfjTU7RZLXEP6kzFkoVSE7Fz4= github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= @@ -103,6 +103,8 @@ github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTS github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= +github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM= +github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -134,10 +136,10 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/theopenlane/core v1.14.2 h1:MBwnG1CbxxDiMgiOAabzpYxp8ZNWVQnrQyc/MrStNhA= -github.com/theopenlane/core v1.14.2/go.mod h1:lejxUaCo6EjWOQKXW146IDjaV4SKK1HRaWd96FHl1Jw= -github.com/theopenlane/core/common v1.0.17 h1:kdrlGHfEGpx4PRhUq8G4xiIW+U0FmmLXD5XjF6wEozw= -github.com/theopenlane/core/common v1.0.17/go.mod h1:+OOhH2NYhLgngkFgkwJZdFTgbB6e+X+pXVXBG8hrZ/M= +github.com/theopenlane/core v1.15.9 h1:dK0HxndOSnsQlKPanr6wCCC7sApb7m6EqtbSuUQHsYg= +github.com/theopenlane/core v1.15.9/go.mod h1:PhMYDPpaX3pPCheIomiIrwKe2CqAY8w14SIRmejCdsU= +github.com/theopenlane/core/common v1.0.18 h1:MHUstBE9q5/NXfK+rgaImqaNcM180dgmo4NKPGf7trs= +github.com/theopenlane/core/common v1.0.18/go.mod h1:2/GPCm7KYiba2d4yX98ClFLhELR24jjbBxvwihzxnnc= github.com/theopenlane/echox v0.3.0 h1:uwOKEw+r1utGQoOR6dZQqAVuY5j8TcasqnTwO5+rMsA= github.com/theopenlane/echox v0.3.0/go.mod h1:yTrXnj7s3VNIg0FCvB7Dut2Elr+LqJKU/nruxx1E1cM= github.com/theopenlane/entx v0.24.0 h1:GObAYJF/LvtjA5+seUf+9vpviNbHDQRKc+QDJtcmuIA= @@ -148,6 +150,8 @@ github.com/theopenlane/iam v0.27.5 h1:FuRbVK2qEiRBelMKho1asHJpk8jSdtcG9/+0MMgx7H github.com/theopenlane/iam v0.27.5/go.mod h1:KUhQ/0eDzJHn2HdU1JRPmvDE4uNHqoOAp8/K0N2S0Zc= github.com/theopenlane/utils v0.7.0 h1:tSN9PBC8Ywn2As3TDW/1TAfWsVsodrccec40oAhiZgo= github.com/theopenlane/utils v0.7.0/go.mod h1:7U9CDoVzCAFWw/JygR5ZhCKGwhHBnuJpK3Jgh1m59+w= +github.com/tinylib/msgp v1.6.3 h1:bCSxiTz386UTgyT1i0MSCvdbWjVW+8sG3PjkGsZQt4s= +github.com/tinylib/msgp v1.6.3/go.mod h1:RSp0LW9oSxFut3KzESt5Voq4GVWyS+PSulT77roAqEA= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= diff --git a/graphclient/graphclient.go b/graphclient/graphclient.go index 0494d39..f21ec50 100644 --- a/graphclient/graphclient.go +++ b/graphclient/graphclient.go @@ -30541,55 +30541,55 @@ func (t *UpdateEmailTemplate_UpdateEmailTemplate) GetEmailTemplate() *UpdateEmai } type CreateBulkCSVEntity_CreateBulkCSVEntity_Entities struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *CreateBulkCSVEntity_CreateBulkCSVEntity_Entities) GetAnnualSpend() *float64 { @@ -30862,7 +30862,7 @@ func (t *CreateBulkCSVEntity_CreateBulkCSVEntity_Entities) GetTerminationNoticeD } return t.TerminationNoticeDays } -func (t *CreateBulkCSVEntity_CreateBulkCSVEntity_Entities) GetTier() *string { +func (t *CreateBulkCSVEntity_CreateBulkCSVEntity_Entities) GetTier() *enums.VendorTier { if t == nil { t = &CreateBulkCSVEntity_CreateBulkCSVEntity_Entities{} } @@ -30899,55 +30899,55 @@ func (t *CreateBulkCSVEntity_CreateBulkCSVEntity) GetEntities() []*CreateBulkCSV } type CreateBulkEntity_CreateBulkEntity_Entities struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *CreateBulkEntity_CreateBulkEntity_Entities) GetAnnualSpend() *float64 { @@ -31220,7 +31220,7 @@ func (t *CreateBulkEntity_CreateBulkEntity_Entities) GetTerminationNoticeDays() } return t.TerminationNoticeDays } -func (t *CreateBulkEntity_CreateBulkEntity_Entities) GetTier() *string { +func (t *CreateBulkEntity_CreateBulkEntity_Entities) GetTier() *enums.VendorTier { if t == nil { t = &CreateBulkEntity_CreateBulkEntity_Entities{} } @@ -31257,55 +31257,55 @@ func (t *CreateBulkEntity_CreateBulkEntity) GetEntities() []*CreateBulkEntity_Cr } type CreateEntity_CreateEntity_Entity struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *CreateEntity_CreateEntity_Entity) GetAnnualSpend() *float64 { @@ -31578,7 +31578,7 @@ func (t *CreateEntity_CreateEntity_Entity) GetTerminationNoticeDays() *int64 { } return t.TerminationNoticeDays } -func (t *CreateEntity_CreateEntity_Entity) GetTier() *string { +func (t *CreateEntity_CreateEntity_Entity) GetTier() *enums.VendorTier { if t == nil { t = &CreateEntity_CreateEntity_Entity{} } @@ -31658,55 +31658,55 @@ func (t *GetAllEntities_Entities_PageInfo) GetStartCursor() *string { } type GetAllEntities_Entities_Edges_Node struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *GetAllEntities_Entities_Edges_Node) GetAnnualSpend() *float64 { @@ -31979,7 +31979,7 @@ func (t *GetAllEntities_Entities_Edges_Node) GetTerminationNoticeDays() *int64 { } return t.TerminationNoticeDays } -func (t *GetAllEntities_Entities_Edges_Node) GetTier() *string { +func (t *GetAllEntities_Entities_Edges_Node) GetTier() *enums.VendorTier { if t == nil { t = &GetAllEntities_Entities_Edges_Node{} } @@ -32073,55 +32073,55 @@ func (t *GetEntities_Entities_PageInfo) GetStartCursor() *string { } type GetEntities_Entities_Edges_Node struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *GetEntities_Entities_Edges_Node) GetAnnualSpend() *float64 { @@ -32394,7 +32394,7 @@ func (t *GetEntities_Entities_Edges_Node) GetTerminationNoticeDays() *int64 { } return t.TerminationNoticeDays } -func (t *GetEntities_Entities_Edges_Node) GetTier() *string { +func (t *GetEntities_Entities_Edges_Node) GetTier() *enums.VendorTier { if t == nil { t = &GetEntities_Entities_Edges_Node{} } @@ -32456,55 +32456,55 @@ func (t *GetEntities_Entities) GetTotalCount() int64 { } type GetEntityByID_Entity struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *GetEntityByID_Entity) GetAnnualSpend() *float64 { @@ -32777,7 +32777,7 @@ func (t *GetEntityByID_Entity) GetTerminationNoticeDays() *int64 { } return t.TerminationNoticeDays } -func (t *GetEntityByID_Entity) GetTier() *string { +func (t *GetEntityByID_Entity) GetTier() *enums.VendorTier { if t == nil { t = &GetEntityByID_Entity{} } @@ -32803,55 +32803,55 @@ func (t *GetEntityByID_Entity) GetVendorMetadata() map[string]any { } type UpdateEntity_UpdateEntity_Entity struct { - AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" - ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" - AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" - BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" - ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" - ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" - ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" - EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" - EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" - EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" - EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" - EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" - EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" - EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" - EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" - EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" - HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" - ID string "json:\"id\" graphql:\"id\"" - InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" - InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" - InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" - LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" - MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" - MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" - Name *string "json:\"name,omitempty\" graphql:\"name\"" - NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" - RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" - ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" - ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" - ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" - RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" - RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" - ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" - ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" - Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" - SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" - SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" - StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" - SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" - Tier *string "json:\"tier,omitempty\" graphql:\"tier\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" - VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" + AnnualSpend *float64 "json:\"annualSpend,omitempty\" graphql:\"annualSpend\"" + ApprovedForUse *bool "json:\"approvedForUse,omitempty\" graphql:\"approvedForUse\"" + AutoRenews *bool "json:\"autoRenews,omitempty\" graphql:\"autoRenews\"" + BillingModel *string "json:\"billingModel,omitempty\" graphql:\"billingModel\"" + ContractEndDate *models.DateTime "json:\"contractEndDate,omitempty\" graphql:\"contractEndDate\"" + ContractRenewalAt *models.DateTime "json:\"contractRenewalAt,omitempty\" graphql:\"contractRenewalAt\"" + ContractStartDate *models.DateTime "json:\"contractStartDate,omitempty\" graphql:\"contractStartDate\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + DisplayName *string "json:\"displayName,omitempty\" graphql:\"displayName\"" + EntityRelationshipStateID *string "json:\"entityRelationshipStateID,omitempty\" graphql:\"entityRelationshipStateID\"" + EntityRelationshipStateName *string "json:\"entityRelationshipStateName,omitempty\" graphql:\"entityRelationshipStateName\"" + EntitySecurityQuestionnaireStatusID *string "json:\"entitySecurityQuestionnaireStatusID,omitempty\" graphql:\"entitySecurityQuestionnaireStatusID\"" + EntitySecurityQuestionnaireStatusName *string "json:\"entitySecurityQuestionnaireStatusName,omitempty\" graphql:\"entitySecurityQuestionnaireStatusName\"" + EntitySourceTypeID *string "json:\"entitySourceTypeID,omitempty\" graphql:\"entitySourceTypeID\"" + EntitySourceTypeName *string "json:\"entitySourceTypeName,omitempty\" graphql:\"entitySourceTypeName\"" + EntityTypeID *string "json:\"entityTypeID,omitempty\" graphql:\"entityTypeID\"" + EnvironmentID *string "json:\"environmentID,omitempty\" graphql:\"environmentID\"" + EnvironmentName *string "json:\"environmentName,omitempty\" graphql:\"environmentName\"" + HasSoc2 *bool "json:\"hasSoc2,omitempty\" graphql:\"hasSoc2\"" + ID string "json:\"id\" graphql:\"id\"" + InternalOwner *string "json:\"internalOwner,omitempty\" graphql:\"internalOwner\"" + InternalOwnerGroupID *string "json:\"internalOwnerGroupID,omitempty\" graphql:\"internalOwnerGroupID\"" + InternalOwnerUserID *string "json:\"internalOwnerUserID,omitempty\" graphql:\"internalOwnerUserID\"" + LastReviewedAt *models.DateTime "json:\"lastReviewedAt,omitempty\" graphql:\"lastReviewedAt\"" + MfaEnforced *bool "json:\"mfaEnforced,omitempty\" graphql:\"mfaEnforced\"" + MfaSupported *bool "json:\"mfaSupported,omitempty\" graphql:\"mfaSupported\"" + Name *string "json:\"name,omitempty\" graphql:\"name\"" + NextReviewAt *models.DateTime "json:\"nextReviewAt,omitempty\" graphql:\"nextReviewAt\"" + RenewalRisk *string "json:\"renewalRisk,omitempty\" graphql:\"renewalRisk\"" + ReviewedBy *string "json:\"reviewedBy,omitempty\" graphql:\"reviewedBy\"" + ReviewedByGroupID *string "json:\"reviewedByGroupID,omitempty\" graphql:\"reviewedByGroupID\"" + ReviewedByUserID *string "json:\"reviewedByUserID,omitempty\" graphql:\"reviewedByUserID\"" + RiskRating *string "json:\"riskRating,omitempty\" graphql:\"riskRating\"" + RiskScore *int64 "json:\"riskScore,omitempty\" graphql:\"riskScore\"" + ScopeID *string "json:\"scopeID,omitempty\" graphql:\"scopeID\"" + ScopeName *string "json:\"scopeName,omitempty\" graphql:\"scopeName\"" + Soc2PeriodEnd *models.DateTime "json:\"soc2PeriodEnd,omitempty\" graphql:\"soc2PeriodEnd\"" + SpendCurrency *string "json:\"spendCurrency,omitempty\" graphql:\"spendCurrency\"" + SsoEnforced *bool "json:\"ssoEnforced,omitempty\" graphql:\"ssoEnforced\"" + StatusPageURL *string "json:\"statusPageURL,omitempty\" graphql:\"statusPageURL\"" + SystemOwned *bool "json:\"systemOwned,omitempty\" graphql:\"systemOwned\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + TerminationNoticeDays *int64 "json:\"terminationNoticeDays,omitempty\" graphql:\"terminationNoticeDays\"" + Tier *enums.VendorTier "json:\"tier,omitempty\" graphql:\"tier\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + VendorMetadata map[string]any "json:\"vendorMetadata,omitempty\" graphql:\"vendorMetadata\"" } func (t *UpdateEntity_UpdateEntity_Entity) GetAnnualSpend() *float64 { @@ -33124,7 +33124,7 @@ func (t *UpdateEntity_UpdateEntity_Entity) GetTerminationNoticeDays() *int64 { } return t.TerminationNoticeDays } -func (t *UpdateEntity_UpdateEntity_Entity) GetTier() *string { +func (t *UpdateEntity_UpdateEntity_Entity) GetTier() *enums.VendorTier { if t == nil { t = &UpdateEntity_UpdateEntity_Entity{} } @@ -46189,16 +46189,24 @@ func (t *GetAllIntegrations_Integrations_PageInfo) GetStartCursor() *string { } type GetAllIntegrations_Integrations_Edges_Node struct { - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - ID string "json:\"id\" graphql:\"id\"" - Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" - Name string "json:\"name\" graphql:\"name\"" - OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + DefinitionID *string "json:\"definitionID,omitempty\" graphql:\"definitionID\"" + DefinitionSlug *string "json:\"definitionSlug,omitempty\" graphql:\"definitionSlug\"" + DefinitionVersion *string "json:\"definitionVersion,omitempty\" graphql:\"definitionVersion\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + Family *string "json:\"family,omitempty\" graphql:\"family\"" + ID string "json:\"id\" graphql:\"id\"" + IntegrationType *string "json:\"integrationType,omitempty\" graphql:\"integrationType\"" + Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" + Metadata map[string]any "json:\"metadata,omitempty\" graphql:\"metadata\"" + Name string "json:\"name\" graphql:\"name\"" + OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" + ProviderMetadataSnapshot map[string]any "json:\"providerMetadataSnapshot,omitempty\" graphql:\"providerMetadataSnapshot\"" + Status enums.IntegrationStatus "json:\"status\" graphql:\"status\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" } func (t *GetAllIntegrations_Integrations_Edges_Node) GetCreatedAt() *time.Time { @@ -46213,24 +46221,60 @@ func (t *GetAllIntegrations_Integrations_Edges_Node) GetCreatedBy() *string { } return t.CreatedBy } +func (t *GetAllIntegrations_Integrations_Edges_Node) GetDefinitionID() *string { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionID +} +func (t *GetAllIntegrations_Integrations_Edges_Node) GetDefinitionSlug() *string { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionSlug +} +func (t *GetAllIntegrations_Integrations_Edges_Node) GetDefinitionVersion() *string { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionVersion +} func (t *GetAllIntegrations_Integrations_Edges_Node) GetDescription() *string { if t == nil { t = &GetAllIntegrations_Integrations_Edges_Node{} } return t.Description } +func (t *GetAllIntegrations_Integrations_Edges_Node) GetFamily() *string { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.Family +} func (t *GetAllIntegrations_Integrations_Edges_Node) GetID() string { if t == nil { t = &GetAllIntegrations_Integrations_Edges_Node{} } return t.ID } +func (t *GetAllIntegrations_Integrations_Edges_Node) GetIntegrationType() *string { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.IntegrationType +} func (t *GetAllIntegrations_Integrations_Edges_Node) GetKind() *string { if t == nil { t = &GetAllIntegrations_Integrations_Edges_Node{} } return t.Kind } +func (t *GetAllIntegrations_Integrations_Edges_Node) GetMetadata() map[string]any { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.Metadata +} func (t *GetAllIntegrations_Integrations_Edges_Node) GetName() string { if t == nil { t = &GetAllIntegrations_Integrations_Edges_Node{} @@ -46243,6 +46287,18 @@ func (t *GetAllIntegrations_Integrations_Edges_Node) GetOwnerID() *string { } return t.OwnerID } +func (t *GetAllIntegrations_Integrations_Edges_Node) GetProviderMetadataSnapshot() map[string]any { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return t.ProviderMetadataSnapshot +} +func (t *GetAllIntegrations_Integrations_Edges_Node) GetStatus() *enums.IntegrationStatus { + if t == nil { + t = &GetAllIntegrations_Integrations_Edges_Node{} + } + return &t.Status +} func (t *GetAllIntegrations_Integrations_Edges_Node) GetTags() []string { if t == nil { t = &GetAllIntegrations_Integrations_Edges_Node{} @@ -46299,16 +46355,24 @@ func (t *GetAllIntegrations_Integrations) GetTotalCount() int64 { } type GetIntegrationByID_Integration struct { - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - ID string "json:\"id\" graphql:\"id\"" - Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" - Name string "json:\"name\" graphql:\"name\"" - OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + DefinitionID *string "json:\"definitionID,omitempty\" graphql:\"definitionID\"" + DefinitionSlug *string "json:\"definitionSlug,omitempty\" graphql:\"definitionSlug\"" + DefinitionVersion *string "json:\"definitionVersion,omitempty\" graphql:\"definitionVersion\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + Family *string "json:\"family,omitempty\" graphql:\"family\"" + ID string "json:\"id\" graphql:\"id\"" + IntegrationType *string "json:\"integrationType,omitempty\" graphql:\"integrationType\"" + Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" + Metadata map[string]any "json:\"metadata,omitempty\" graphql:\"metadata\"" + Name string "json:\"name\" graphql:\"name\"" + OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" + ProviderMetadataSnapshot map[string]any "json:\"providerMetadataSnapshot,omitempty\" graphql:\"providerMetadataSnapshot\"" + Status enums.IntegrationStatus "json:\"status\" graphql:\"status\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" } func (t *GetIntegrationByID_Integration) GetCreatedAt() *time.Time { @@ -46323,24 +46387,60 @@ func (t *GetIntegrationByID_Integration) GetCreatedBy() *string { } return t.CreatedBy } +func (t *GetIntegrationByID_Integration) GetDefinitionID() *string { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.DefinitionID +} +func (t *GetIntegrationByID_Integration) GetDefinitionSlug() *string { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.DefinitionSlug +} +func (t *GetIntegrationByID_Integration) GetDefinitionVersion() *string { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.DefinitionVersion +} func (t *GetIntegrationByID_Integration) GetDescription() *string { if t == nil { t = &GetIntegrationByID_Integration{} } return t.Description } +func (t *GetIntegrationByID_Integration) GetFamily() *string { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.Family +} func (t *GetIntegrationByID_Integration) GetID() string { if t == nil { t = &GetIntegrationByID_Integration{} } return t.ID } +func (t *GetIntegrationByID_Integration) GetIntegrationType() *string { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.IntegrationType +} func (t *GetIntegrationByID_Integration) GetKind() *string { if t == nil { t = &GetIntegrationByID_Integration{} } return t.Kind } +func (t *GetIntegrationByID_Integration) GetMetadata() map[string]any { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.Metadata +} func (t *GetIntegrationByID_Integration) GetName() string { if t == nil { t = &GetIntegrationByID_Integration{} @@ -46353,6 +46453,18 @@ func (t *GetIntegrationByID_Integration) GetOwnerID() *string { } return t.OwnerID } +func (t *GetIntegrationByID_Integration) GetProviderMetadataSnapshot() map[string]any { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return t.ProviderMetadataSnapshot +} +func (t *GetIntegrationByID_Integration) GetStatus() *enums.IntegrationStatus { + if t == nil { + t = &GetIntegrationByID_Integration{} + } + return &t.Status +} func (t *GetIntegrationByID_Integration) GetTags() []string { if t == nil { t = &GetIntegrationByID_Integration{} @@ -46405,16 +46517,24 @@ func (t *GetIntegrations_Integrations_PageInfo) GetStartCursor() *string { } type GetIntegrations_Integrations_Edges_Node struct { - CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" - CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" - Description *string "json:\"description,omitempty\" graphql:\"description\"" - ID string "json:\"id\" graphql:\"id\"" - Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" - Name string "json:\"name\" graphql:\"name\"" - OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" - Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" - UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" - UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" + CreatedAt *time.Time "json:\"createdAt,omitempty\" graphql:\"createdAt\"" + CreatedBy *string "json:\"createdBy,omitempty\" graphql:\"createdBy\"" + DefinitionID *string "json:\"definitionID,omitempty\" graphql:\"definitionID\"" + DefinitionSlug *string "json:\"definitionSlug,omitempty\" graphql:\"definitionSlug\"" + DefinitionVersion *string "json:\"definitionVersion,omitempty\" graphql:\"definitionVersion\"" + Description *string "json:\"description,omitempty\" graphql:\"description\"" + Family *string "json:\"family,omitempty\" graphql:\"family\"" + ID string "json:\"id\" graphql:\"id\"" + IntegrationType *string "json:\"integrationType,omitempty\" graphql:\"integrationType\"" + Kind *string "json:\"kind,omitempty\" graphql:\"kind\"" + Metadata map[string]any "json:\"metadata,omitempty\" graphql:\"metadata\"" + Name string "json:\"name\" graphql:\"name\"" + OwnerID *string "json:\"ownerID,omitempty\" graphql:\"ownerID\"" + ProviderMetadataSnapshot map[string]any "json:\"providerMetadataSnapshot,omitempty\" graphql:\"providerMetadataSnapshot\"" + Status enums.IntegrationStatus "json:\"status\" graphql:\"status\"" + Tags []string "json:\"tags,omitempty\" graphql:\"tags\"" + UpdatedAt *time.Time "json:\"updatedAt,omitempty\" graphql:\"updatedAt\"" + UpdatedBy *string "json:\"updatedBy,omitempty\" graphql:\"updatedBy\"" } func (t *GetIntegrations_Integrations_Edges_Node) GetCreatedAt() *time.Time { @@ -46429,24 +46549,60 @@ func (t *GetIntegrations_Integrations_Edges_Node) GetCreatedBy() *string { } return t.CreatedBy } +func (t *GetIntegrations_Integrations_Edges_Node) GetDefinitionID() *string { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionID +} +func (t *GetIntegrations_Integrations_Edges_Node) GetDefinitionSlug() *string { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionSlug +} +func (t *GetIntegrations_Integrations_Edges_Node) GetDefinitionVersion() *string { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.DefinitionVersion +} func (t *GetIntegrations_Integrations_Edges_Node) GetDescription() *string { if t == nil { t = &GetIntegrations_Integrations_Edges_Node{} } return t.Description } +func (t *GetIntegrations_Integrations_Edges_Node) GetFamily() *string { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.Family +} func (t *GetIntegrations_Integrations_Edges_Node) GetID() string { if t == nil { t = &GetIntegrations_Integrations_Edges_Node{} } return t.ID } +func (t *GetIntegrations_Integrations_Edges_Node) GetIntegrationType() *string { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.IntegrationType +} func (t *GetIntegrations_Integrations_Edges_Node) GetKind() *string { if t == nil { t = &GetIntegrations_Integrations_Edges_Node{} } return t.Kind } +func (t *GetIntegrations_Integrations_Edges_Node) GetMetadata() map[string]any { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.Metadata +} func (t *GetIntegrations_Integrations_Edges_Node) GetName() string { if t == nil { t = &GetIntegrations_Integrations_Edges_Node{} @@ -46459,6 +46615,18 @@ func (t *GetIntegrations_Integrations_Edges_Node) GetOwnerID() *string { } return t.OwnerID } +func (t *GetIntegrations_Integrations_Edges_Node) GetProviderMetadataSnapshot() map[string]any { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return t.ProviderMetadataSnapshot +} +func (t *GetIntegrations_Integrations_Edges_Node) GetStatus() *enums.IntegrationStatus { + if t == nil { + t = &GetIntegrations_Integrations_Edges_Node{} + } + return &t.Status +} func (t *GetIntegrations_Integrations_Edges_Node) GetTags() []string { if t == nil { t = &GetIntegrations_Integrations_Edges_Node{} @@ -128313,11 +128481,19 @@ const GetAllIntegrationsDocument = `query GetAllIntegrations ($first: Int, $last node { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy @@ -128352,11 +128528,19 @@ const GetIntegrationByIDDocument = `query GetIntegrationByID ($integrationId: ID integration(id: $integrationId) { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy @@ -128394,11 +128578,19 @@ const GetIntegrationsDocument = `query GetIntegrations ($first: Int, $last: Int, node { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy diff --git a/graphclient/models.go b/graphclient/models.go index 4a05f33..43e6f83 100644 --- a/graphclient/models.go +++ b/graphclient/models.go @@ -1079,13 +1079,14 @@ type AssessmentResponse struct { // the document containing the user's response data DocumentDataID *string `json:"documentDataID,omitempty"` // is this a draft response? can the user resume from where they left? - IsDraft bool `json:"isDraft"` - Owner *Organization `json:"owner,omitempty"` - Assessment *Assessment `json:"assessment"` - Campaign *Campaign `json:"campaign,omitempty"` - IdentityHolder *IdentityHolder `json:"identityHolder,omitempty"` - Entity *Entity `json:"entity,omitempty"` - Document *DocumentData `json:"document,omitempty"` + IsDraft bool `json:"isDraft"` + Owner *Organization `json:"owner,omitempty"` + Assessment *Assessment `json:"assessment"` + Campaign *Campaign `json:"campaign,omitempty"` + IdentityHolder *IdentityHolder `json:"identityHolder,omitempty"` + Entity *Entity `json:"entity,omitempty"` + Document *DocumentData `json:"document,omitempty"` + VendorRiskScores *VendorRiskScoreConnection `json:"vendorRiskScores"` } func (AssessmentResponse) IsNode() {} @@ -1435,6 +1436,9 @@ type AssessmentResponseWhereInput struct { // document edge predicates HasDocument *bool `json:"hasDocument,omitempty"` HasDocumentWith []*DocumentDataWhereInput `json:"hasDocumentWith,omitempty"` + // vendor_risk_scores edge predicates + HasVendorRiskScores *bool `json:"hasVendorRiskScores,omitempty"` + HasVendorRiskScoresWith []*VendorRiskScoreWhereInput `json:"hasVendorRiskScoresWith,omitempty"` } // Return response for updateAssessment mutation @@ -5769,13 +5773,14 @@ type CreateAssessmentResponseInput struct { // additional metadata about email delivery events EmailMetadata map[string]any `json:"emailMetadata,omitempty"` // when the assessment response is due - DueDate *time.Time `json:"dueDate,omitempty"` - OwnerID *string `json:"ownerID,omitempty"` - AssessmentID string `json:"assessmentID"` - CampaignID *string `json:"campaignID,omitempty"` - IdentityHolderID *string `json:"identityHolderID,omitempty"` - EntityID *string `json:"entityID,omitempty"` - DocumentID *string `json:"documentID,omitempty"` + DueDate *time.Time `json:"dueDate,omitempty"` + OwnerID *string `json:"ownerID,omitempty"` + AssessmentID string `json:"assessmentID"` + CampaignID *string `json:"campaignID,omitempty"` + IdentityHolderID *string `json:"identityHolderID,omitempty"` + EntityID *string `json:"entityID,omitempty"` + DocumentID *string `json:"documentID,omitempty"` + VendorRiskScoreIDs []string `json:"vendorRiskScoreIDs,omitempty"` } // CreateAssetInput is used for create Asset object. @@ -6330,7 +6335,9 @@ type CreateDirectoryAccountInput struct { // provider-specific metadata captured alongside the normalized profile to preserve directory quirks without schema sprawl Metadata map[string]any `json:"metadata,omitempty"` // cursor or ETag supplied by the source system for auditing - SourceVersion *string `json:"sourceVersion,omitempty"` + SourceVersion *string `json:"sourceVersion,omitempty"` + // indicates this directory account originates from the installation designated as the primary directory source for its owner organization + PrimarySource *bool `json:"primarySource,omitempty"` OwnerID *string `json:"ownerID,omitempty"` EnvironmentID *string `json:"environmentID,omitempty"` ScopeID *string `json:"scopeID,omitempty"` @@ -6675,8 +6682,8 @@ type CreateEntityInput struct { RiskRating *string `json:"riskRating,omitempty"` // the risk score for the entity RiskScore *int64 `json:"riskScore,omitempty"` - // the tier classification for the entity - Tier *string `json:"tier,omitempty"` + // the vendor risk tier classification, used to determine the depth of TPRM assessment required + Tier *enums.VendorTier `json:"tier,omitempty"` // the cadence for reviewing the entity ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` // when the entity is due for review @@ -6710,6 +6717,7 @@ type CreateEntityInput struct { ScanIDs []string `json:"scanIDs,omitempty"` CampaignIDs []string `json:"campaignIDs,omitempty"` AssessmentResponseIDs []string `json:"assessmentResponseIDs,omitempty"` + VendorRiskScoreIDs []string `json:"vendorRiskScoreIDs,omitempty"` IntegrationIDs []string `json:"integrationIDs,omitempty"` SubprocessorIDs []string `json:"subprocessorIDs,omitempty"` AuthMethodIDs []string `json:"authMethodIDs,omitempty"` @@ -7805,6 +7813,8 @@ type CreateOrganizationInput struct { DirectoryGroupIDs []string `json:"directoryGroupIDs,omitempty"` DirectorySyncRunIDs []string `json:"directorySyncRunIDs,omitempty"` DiscussionIDs []string `json:"discussionIDs,omitempty"` + VendorScoringConfigIDs []string `json:"vendorScoringConfigIDs,omitempty"` + VendorRiskScoreIDs []string `json:"vendorRiskScoreIDs,omitempty"` CreateOrgSettings *CreateOrganizationSettingInput `json:"createOrgSettings,omitempty"` } @@ -7971,6 +7981,9 @@ type CreatePlatformInput struct { EntityIDs []string `json:"entityIDs,omitempty"` EvidenceIDs []string `json:"evidenceIDs,omitempty"` FileIDs []string `json:"fileIDs,omitempty"` + ArchitectureDiagramIDs []string `json:"architectureDiagramIDs,omitempty"` + DataFlowDiagramIDs []string `json:"dataFlowDiagramIDs,omitempty"` + TrustBoundaryDiagramIDs []string `json:"trustBoundaryDiagramIDs,omitempty"` RiskIDs []string `json:"riskIDs,omitempty"` ControlIDs []string `json:"controlIDs,omitempty"` AssessmentIDs []string `json:"assessmentIDs,omitempty"` @@ -8156,6 +8169,8 @@ type CreateRemediationInput struct { ExternalOwnerID *string `json:"externalOwnerID,omitempty"` // title or short description of the remediation effort Title *string `json:"title,omitempty"` + // status of the remediation, such as pending, in_progress, or completed + Status *enums.RemediationStatus `json:"status,omitempty"` // state of the remediation, such as pending or completed State *string `json:"state,omitempty"` // intent or goal of the remediation effort @@ -8324,30 +8339,45 @@ type CreateRiskInput struct { // business costs associated with the risk BusinessCosts *string `json:"businessCosts,omitempty"` // structured details of the business costs in JSON format - BusinessCostsJSON []any `json:"businessCostsJSON,omitempty"` - OwnerID *string `json:"ownerID,omitempty"` - BlockedGroupIDs []string `json:"blockedGroupIDs,omitempty"` - EditorIDs []string `json:"editorIDs,omitempty"` - ViewerIDs []string `json:"viewerIDs,omitempty"` - RiskKindID *string `json:"riskKindID,omitempty"` - RiskCategoryID *string `json:"riskCategoryID,omitempty"` - EnvironmentID *string `json:"environmentID,omitempty"` - ScopeID *string `json:"scopeID,omitempty"` - ControlIDs []string `json:"controlIDs,omitempty"` - SubcontrolIDs []string `json:"subcontrolIDs,omitempty"` - ProcedureIDs []string `json:"procedureIDs,omitempty"` - InternalPolicyIDs []string `json:"internalPolicyIDs,omitempty"` - ProgramIDs []string `json:"programIDs,omitempty"` - PlatformIDs []string `json:"platformIDs,omitempty"` - ActionPlanIDs []string `json:"actionPlanIDs,omitempty"` - TaskIDs []string `json:"taskIDs,omitempty"` - AssetIDs []string `json:"assetIDs,omitempty"` - EntityIDs []string `json:"entityIDs,omitempty"` - ScanIDs []string `json:"scanIDs,omitempty"` - StakeholderID *string `json:"stakeholderID,omitempty"` - DelegateID *string `json:"delegateID,omitempty"` - CommentIDs []string `json:"commentIDs,omitempty"` - DiscussionIDs []string `json:"discussionIDs,omitempty"` + BusinessCostsJSON []any `json:"businessCostsJSON,omitempty"` + // the time when the risk was mitigated + MitigatedAt *models.DateTime `json:"mitigatedAt,omitempty"` + // indicates if a periodic review is required for the risk + ReviewRequired *bool `json:"reviewRequired,omitempty"` + // the time when the risk was last reviewed + LastReviewedAt *models.DateTime `json:"lastReviewedAt,omitempty"` + ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` + // the time when the next review is due for the risk + NextReviewDueAt *models.DateTime `json:"nextReviewDueAt,omitempty"` + // score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + ResidualScore *int64 `json:"residualScore,omitempty"` + // the decision made for the risk - accept, transfer, avoid, mitigate, or none + RiskDecision *enums.RiskDecision `json:"riskDecision,omitempty"` + OwnerID *string `json:"ownerID,omitempty"` + BlockedGroupIDs []string `json:"blockedGroupIDs,omitempty"` + EditorIDs []string `json:"editorIDs,omitempty"` + ViewerIDs []string `json:"viewerIDs,omitempty"` + RiskKindID *string `json:"riskKindID,omitempty"` + RiskCategoryID *string `json:"riskCategoryID,omitempty"` + EnvironmentID *string `json:"environmentID,omitempty"` + ScopeID *string `json:"scopeID,omitempty"` + ControlIDs []string `json:"controlIDs,omitempty"` + SubcontrolIDs []string `json:"subcontrolIDs,omitempty"` + ProcedureIDs []string `json:"procedureIDs,omitempty"` + InternalPolicyIDs []string `json:"internalPolicyIDs,omitempty"` + ProgramIDs []string `json:"programIDs,omitempty"` + PlatformIDs []string `json:"platformIDs,omitempty"` + ActionPlanIDs []string `json:"actionPlanIDs,omitempty"` + TaskIDs []string `json:"taskIDs,omitempty"` + AssetIDs []string `json:"assetIDs,omitempty"` + EntityIDs []string `json:"entityIDs,omitempty"` + ScanIDs []string `json:"scanIDs,omitempty"` + StakeholderID *string `json:"stakeholderID,omitempty"` + DelegateID *string `json:"delegateID,omitempty"` + CommentIDs []string `json:"commentIDs,omitempty"` + DiscussionIDs []string `json:"discussionIDs,omitempty"` + ReviewIDs []string `json:"reviewIDs,omitempty"` + RemediationIDs []string `json:"remediationIDs,omitempty"` } // CreateSLADefinitionInput is used for create SLADefinition object. @@ -9122,6 +9152,48 @@ type CreateUserSettingInput struct { DefaultOrgID *string `json:"defaultOrgID,omitempty"` } +// CreateVendorRiskScoreInput is used for create VendorRiskScore object. +// Input was generated by ent. +type CreateVendorRiskScoreInput struct { + // tags associated with the object + Tags []string `json:"tags,omitempty"` + // stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + QuestionKey string `json:"questionKey"` + // question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + QuestionName string `json:"questionName"` + // question description captured at assessment time + QuestionDescription *string `json:"questionDescription,omitempty"` + // question category captured at assessment time + QuestionCategory enums.VendorScoringCategory `json:"questionCategory"` + // user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + Impact enums.VendorRiskImpact `json:"impact"` + // user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + Likelihood enums.VendorRiskLikelihood `json:"likelihood"` + // factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + Answer *string `json:"answer,omitempty"` + // optional justification or context for the assigned impact and likelihood + Notes *string `json:"notes,omitempty"` + OwnerID *string `json:"ownerID,omitempty"` + VendorScoringConfigID *string `json:"vendorScoringConfigID,omitempty"` + EntityID string `json:"entityID"` + AssessmentResponseID *string `json:"assessmentResponseID,omitempty"` +} + +// CreateVendorScoringConfigInput is used for create VendorScoringConfig object. +// Input was generated by ent. +type CreateVendorScoringConfigInput struct { + // tags associated with the object + Tags []string `json:"tags,omitempty"` + // org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + Questions *string `json:"questions,omitempty"` + // controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + ScoringMode *enums.VendorScoringMode `json:"scoringMode,omitempty"` + // org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + RiskThresholds *string `json:"riskThresholds,omitempty"` + OwnerID *string `json:"ownerID,omitempty"` + VendorRiskScoreIDs []string `json:"vendorRiskScoreIDs,omitempty"` +} + // CreateVulnerabilityInput is used for create Vulnerability object. // Input was generated by ent. type CreateVulnerabilityInput struct { @@ -9181,12 +9253,36 @@ type CreateVulnerabilityInput struct { References []string `json:"references,omitempty"` // targets or assets impacted by the vulnerability Impacts []string `json:"impacts,omitempty"` + // CWE identifiers associated with the vulnerability + CweIds []string `json:"cweIds,omitempty"` + // version range affected by the vulnerability + VulnerableVersionRange *string `json:"vulnerableVersionRange,omitempty"` + // earliest version that fixes the vulnerability + FirstPatchedVersion *string `json:"firstPatchedVersion,omitempty"` + // name of the vulnerable package or dependency + PackageName *string `json:"packageName,omitempty"` + // ecosystem of the vulnerable package such as npm, pip, or maven + PackageEcosystem *string `json:"packageEcosystem,omitempty"` + // path to the manifest file declaring the vulnerable dependency + ManifestPath *string `json:"manifestPath,omitempty"` + // scope of the dependency such as runtime or development + DependencyScope *string `json:"dependencyScope,omitempty"` // timestamp when the vulnerability was published PublishedAt *models.DateTime `json:"publishedAt,omitempty"` // timestamp when the vulnerability was discovered in the environment DiscoveredAt *models.DateTime `json:"discoveredAt,omitempty"` // timestamp when the source last updated the vulnerability SourceUpdatedAt *models.DateTime `json:"sourceUpdatedAt,omitempty"` + // timestamp when the vulnerability was dismissed + DismissedAt *models.DateTime `json:"dismissedAt,omitempty"` + // reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + DismissedReason *string `json:"dismissedReason,omitempty"` + // free-text explanation provided when the vulnerability was dismissed + DismissedComment *string `json:"dismissedComment,omitempty"` + // timestamp when the vulnerability was marked as fixed + FixedAt *models.DateTime `json:"fixedAt,omitempty"` + // timestamp when the vulnerability was automatically dismissed by the source system + AutoDismissedAt *models.DateTime `json:"autoDismissedAt,omitempty"` // link to the vulnerability in the source system ExternalURI *string `json:"externalURI,omitempty"` // raw metadata payload for the vulnerability from the source system @@ -10301,7 +10397,9 @@ type DirectoryAccount struct { // object storage file identifier that holds the raw upstream payload RawProfileFileID *string `json:"rawProfileFileID,omitempty"` // cursor or ETag supplied by the source system for auditing - SourceVersion *string `json:"sourceVersion,omitempty"` + SourceVersion *string `json:"sourceVersion,omitempty"` + // indicates this directory account originates from the installation designated as the primary directory source for its owner organization + PrimarySource bool `json:"primarySource"` Owner *Organization `json:"owner,omitempty"` Environment *CustomTypeEnum `json:"environment,omitempty"` Scope *CustomTypeEnum `json:"scope,omitempty"` @@ -10946,6 +11044,9 @@ type DirectoryAccountWhereInput struct { SourceVersionNotNil *bool `json:"sourceVersionNotNil,omitempty"` SourceVersionEqualFold *string `json:"sourceVersionEqualFold,omitempty"` SourceVersionContainsFold *string `json:"sourceVersionContainsFold,omitempty"` + // primary_source field predicates + PrimarySource *bool `json:"primarySource,omitempty"` + PrimarySourceNeq *bool `json:"primarySourceNEQ,omitempty"` // owner edge predicates HasOwner *bool `json:"hasOwner,omitempty"` HasOwnerWith []*OrganizationWhereInput `json:"hasOwnerWith,omitempty"` @@ -13779,8 +13880,10 @@ type Entity struct { RiskRating *string `json:"riskRating,omitempty"` // the risk score for the entity RiskScore *int64 `json:"riskScore,omitempty"` - // the tier classification for the entity - Tier *string `json:"tier,omitempty"` + // number of scoring questions answered for the current risk score; used to contextualize partial assessments + RiskScoreCoverage *int64 `json:"riskScoreCoverage,omitempty"` + // the vendor risk tier classification, used to determine the depth of TPRM assessment required + Tier *enums.VendorTier `json:"tier,omitempty"` // the cadence for reviewing the entity ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` // when the entity is due for review @@ -13816,6 +13919,7 @@ type Entity struct { Scans *ScanConnection `json:"scans"` Campaigns *CampaignConnection `json:"campaigns"` AssessmentResponses *AssessmentResponseConnection `json:"assessmentResponses"` + VendorRiskScores *VendorRiskScoreConnection `json:"vendorRiskScores"` Integrations *IntegrationConnection `json:"integrations"` Subprocessors *SubprocessorConnection `json:"subprocessors"` AuthMethods *CustomTypeEnumConnection `json:"authMethods"` @@ -14755,22 +14859,24 @@ type EntityWhereInput struct { RiskScoreLte *int64 `json:"riskScoreLTE,omitempty"` RiskScoreIsNil *bool `json:"riskScoreIsNil,omitempty"` RiskScoreNotNil *bool `json:"riskScoreNotNil,omitempty"` + // risk_score_coverage field predicates + RiskScoreCoverage *int64 `json:"riskScoreCoverage,omitempty"` + RiskScoreCoverageNeq *int64 `json:"riskScoreCoverageNEQ,omitempty"` + RiskScoreCoverageIn []int64 `json:"riskScoreCoverageIn,omitempty"` + RiskScoreCoverageNotIn []int64 `json:"riskScoreCoverageNotIn,omitempty"` + RiskScoreCoverageGt *int64 `json:"riskScoreCoverageGT,omitempty"` + RiskScoreCoverageGte *int64 `json:"riskScoreCoverageGTE,omitempty"` + RiskScoreCoverageLt *int64 `json:"riskScoreCoverageLT,omitempty"` + RiskScoreCoverageLte *int64 `json:"riskScoreCoverageLTE,omitempty"` + RiskScoreCoverageIsNil *bool `json:"riskScoreCoverageIsNil,omitempty"` + RiskScoreCoverageNotNil *bool `json:"riskScoreCoverageNotNil,omitempty"` // tier field predicates - Tier *string `json:"tier,omitempty"` - TierNeq *string `json:"tierNEQ,omitempty"` - TierIn []string `json:"tierIn,omitempty"` - TierNotIn []string `json:"tierNotIn,omitempty"` - TierGt *string `json:"tierGT,omitempty"` - TierGte *string `json:"tierGTE,omitempty"` - TierLt *string `json:"tierLT,omitempty"` - TierLte *string `json:"tierLTE,omitempty"` - TierContains *string `json:"tierContains,omitempty"` - TierHasPrefix *string `json:"tierHasPrefix,omitempty"` - TierHasSuffix *string `json:"tierHasSuffix,omitempty"` - TierIsNil *bool `json:"tierIsNil,omitempty"` - TierNotNil *bool `json:"tierNotNil,omitempty"` - TierEqualFold *string `json:"tierEqualFold,omitempty"` - TierContainsFold *string `json:"tierContainsFold,omitempty"` + Tier *enums.VendorTier `json:"tier,omitempty"` + TierNeq *enums.VendorTier `json:"tierNEQ,omitempty"` + TierIn []enums.VendorTier `json:"tierIn,omitempty"` + TierNotIn []enums.VendorTier `json:"tierNotIn,omitempty"` + TierIsNil *bool `json:"tierIsNil,omitempty"` + TierNotNil *bool `json:"tierNotNil,omitempty"` // review_frequency field predicates ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` ReviewFrequencyNeq *enums.Frequency `json:"reviewFrequencyNEQ,omitempty"` @@ -14906,6 +15012,9 @@ type EntityWhereInput struct { // assessment_responses edge predicates HasAssessmentResponses *bool `json:"hasAssessmentResponses,omitempty"` HasAssessmentResponsesWith []*AssessmentResponseWhereInput `json:"hasAssessmentResponsesWith,omitempty"` + // vendor_risk_scores edge predicates + HasVendorRiskScores *bool `json:"hasVendorRiskScores,omitempty"` + HasVendorRiskScoresWith []*VendorRiskScoreWhereInput `json:"hasVendorRiskScoresWith,omitempty"` // integrations edge predicates HasIntegrations *bool `json:"hasIntegrations,omitempty"` HasIntegrationsWith []*IntegrationWhereInput `json:"hasIntegrationsWith,omitempty"` @@ -19705,24 +19814,26 @@ type Integration struct { // the lifecycle status of the installation Status enums.IntegrationStatus `json:"status"` // snapshot of definition metadata captured on the installation - ProviderMetadataSnapshot map[string]any `json:"providerMetadataSnapshot,omitempty"` - Owner *Organization `json:"owner,omitempty"` - Environment *CustomTypeEnum `json:"environment,omitempty"` - Scope *CustomTypeEnum `json:"scope,omitempty"` - Secrets *HushConnection `json:"secrets"` - Files *FileConnection `json:"files"` - Events *EventConnection `json:"events"` - Findings *FindingConnection `json:"findings"` - Vulnerabilities *VulnerabilityConnection `json:"vulnerabilities"` - Reviews *ReviewConnection `json:"reviews"` - Remediations *RemediationConnection `json:"remediations"` - Tasks *TaskConnection `json:"tasks"` - ActionPlans *ActionPlanConnection `json:"actionPlans"` - Assets *AssetConnection `json:"assets"` - DirectoryAccounts *DirectoryAccountConnection `json:"directoryAccounts"` - DirectoryGroups *DirectoryGroupConnection `json:"directoryGroups"` - DirectoryMemberships *DirectoryMembershipConnection `json:"directoryMemberships"` - DirectorySyncRuns *DirectorySyncRunConnection `json:"directorySyncRuns"` + ProviderMetadataSnapshot map[string]any `json:"providerMetadataSnapshot,omitempty"` + // designates this integration as the authoritative directory source for identity holder enrichment and lifecycle derivation within its owner organization + PrimaryDirectory bool `json:"primaryDirectory"` + Owner *Organization `json:"owner,omitempty"` + Environment *CustomTypeEnum `json:"environment,omitempty"` + Scope *CustomTypeEnum `json:"scope,omitempty"` + Secrets *HushConnection `json:"secrets"` + Files *FileConnection `json:"files"` + Events *EventConnection `json:"events"` + Findings *FindingConnection `json:"findings"` + Vulnerabilities *VulnerabilityConnection `json:"vulnerabilities"` + Reviews *ReviewConnection `json:"reviews"` + Remediations *RemediationConnection `json:"remediations"` + Tasks *TaskConnection `json:"tasks"` + ActionPlans *ActionPlanConnection `json:"actionPlans"` + Assets *AssetConnection `json:"assets"` + DirectoryAccounts *DirectoryAccountConnection `json:"directoryAccounts"` + DirectoryGroups *DirectoryGroupConnection `json:"directoryGroups"` + DirectoryMemberships *DirectoryMembershipConnection `json:"directoryMemberships"` + DirectorySyncRuns *DirectorySyncRunConnection `json:"directorySyncRuns"` // platform associated with this integration Platform *Platform `json:"platform,omitempty"` NotificationTemplates *NotificationTemplateConnection `json:"notificationTemplates"` @@ -20084,6 +20195,9 @@ type IntegrationWhereInput struct { StatusNeq *enums.IntegrationStatus `json:"statusNEQ,omitempty"` StatusIn []enums.IntegrationStatus `json:"statusIn,omitempty"` StatusNotIn []enums.IntegrationStatus `json:"statusNotIn,omitempty"` + // primary_directory field predicates + PrimaryDirectory *bool `json:"primaryDirectory,omitempty"` + PrimaryDirectoryNeq *bool `json:"primaryDirectoryNEQ,omitempty"` // owner edge predicates HasOwner *bool `json:"hasOwner,omitempty"` HasOwnerWith []*OrganizationWhereInput `json:"hasOwnerWith,omitempty"` @@ -24991,6 +25105,8 @@ type Organization struct { DirectoryMemberships *DirectoryMembershipConnection `json:"directoryMemberships"` DirectorySyncRuns *DirectorySyncRunConnection `json:"directorySyncRuns"` Discussions *DiscussionConnection `json:"discussions"` + VendorScoringConfigs *VendorScoringConfigConnection `json:"vendorScoringConfigs"` + VendorRiskScores *VendorRiskScoreConnection `json:"vendorRiskScores"` Members *OrgMembershipConnection `json:"members"` } @@ -25976,6 +26092,12 @@ type OrganizationWhereInput struct { // discussions edge predicates HasDiscussions *bool `json:"hasDiscussions,omitempty"` HasDiscussionsWith []*DiscussionWhereInput `json:"hasDiscussionsWith,omitempty"` + // vendor_scoring_configs edge predicates + HasVendorScoringConfigs *bool `json:"hasVendorScoringConfigs,omitempty"` + HasVendorScoringConfigsWith []*VendorScoringConfigWhereInput `json:"hasVendorScoringConfigsWith,omitempty"` + // vendor_risk_scores edge predicates + HasVendorRiskScores *bool `json:"hasVendorRiskScores,omitempty"` + HasVendorRiskScoresWith []*VendorRiskScoreWhereInput `json:"hasVendorRiskScoresWith,omitempty"` // members edge predicates HasMembers *bool `json:"hasMembers,omitempty"` HasMembersWith []*OrgMembershipWhereInput `json:"hasMembersWith,omitempty"` @@ -26382,6 +26504,9 @@ type Platform struct { Entities *EntityConnection `json:"entities"` Evidence *EvidenceConnection `json:"evidence"` Files *FileConnection `json:"files"` + ArchitectureDiagrams *FileConnection `json:"architectureDiagrams"` + DataFlowDiagrams *FileConnection `json:"dataFlowDiagrams"` + TrustBoundaryDiagrams *FileConnection `json:"trustBoundaryDiagrams"` Risks *RiskConnection `json:"risks"` Controls *ControlConnection `json:"controls"` Assessments *AssessmentConnection `json:"assessments"` @@ -27285,6 +27410,15 @@ type PlatformWhereInput struct { // files edge predicates HasFiles *bool `json:"hasFiles,omitempty"` HasFilesWith []*FileWhereInput `json:"hasFilesWith,omitempty"` + // architecture_diagrams edge predicates + HasArchitectureDiagrams *bool `json:"hasArchitectureDiagrams,omitempty"` + HasArchitectureDiagramsWith []*FileWhereInput `json:"hasArchitectureDiagramsWith,omitempty"` + // data_flow_diagrams edge predicates + HasDataFlowDiagrams *bool `json:"hasDataFlowDiagrams,omitempty"` + HasDataFlowDiagramsWith []*FileWhereInput `json:"hasDataFlowDiagramsWith,omitempty"` + // trust_boundary_diagrams edge predicates + HasTrustBoundaryDiagrams *bool `json:"hasTrustBoundaryDiagrams,omitempty"` + HasTrustBoundaryDiagramsWith []*FileWhereInput `json:"hasTrustBoundaryDiagramsWith,omitempty"` // risks edge predicates HasRisks *bool `json:"hasRisks,omitempty"` HasRisksWith []*RiskWhereInput `json:"hasRisksWith,omitempty"` @@ -28664,6 +28798,8 @@ type Remediation struct { ExternalOwnerID *string `json:"externalOwnerID,omitempty"` // title or short description of the remediation effort Title *string `json:"title,omitempty"` + // status of the remediation, such as pending, in_progress, or completed + Status *enums.RemediationStatus `json:"status,omitempty"` // state of the remediation, such as pending or completed State *string `json:"state,omitempty"` // intent or goal of the remediation effort @@ -29035,6 +29171,13 @@ type RemediationWhereInput struct { TitleNotNil *bool `json:"titleNotNil,omitempty"` TitleEqualFold *string `json:"titleEqualFold,omitempty"` TitleContainsFold *string `json:"titleContainsFold,omitempty"` + // status field predicates + Status *enums.RemediationStatus `json:"status,omitempty"` + StatusNeq *enums.RemediationStatus `json:"statusNEQ,omitempty"` + StatusIn []enums.RemediationStatus `json:"statusIn,omitempty"` + StatusNotIn []enums.RemediationStatus `json:"statusNotIn,omitempty"` + StatusIsNil *bool `json:"statusIsNil,omitempty"` + StatusNotNil *bool `json:"statusNotNil,omitempty"` // state field predicates State *string `json:"state,omitempty"` StateNeq *string `json:"stateNEQ,omitempty"` @@ -30051,7 +30194,20 @@ type Risk struct { // the id of the group responsible for risk oversight StakeholderID *string `json:"stakeholderID,omitempty"` // the id of the group responsible for risk oversight on behalf of the stakeholder - DelegateID *string `json:"delegateID,omitempty"` + DelegateID *string `json:"delegateID,omitempty"` + // the time when the risk was mitigated + MitigatedAt *models.DateTime `json:"mitigatedAt,omitempty"` + // indicates if a periodic review is required for the risk + ReviewRequired *bool `json:"reviewRequired,omitempty"` + // the time when the risk was last reviewed + LastReviewedAt *models.DateTime `json:"lastReviewedAt,omitempty"` + ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` + // the time when the next review is due for the risk + NextReviewDueAt *models.DateTime `json:"nextReviewDueAt,omitempty"` + // score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + ResidualScore *int64 `json:"residualScore,omitempty"` + // the decision made for the risk - accept, transfer, avoid, mitigate, or none + RiskDecision *enums.RiskDecision `json:"riskDecision,omitempty"` Owner *Organization `json:"owner,omitempty"` BlockedGroups *GroupConnection `json:"blockedGroups"` Editors *GroupConnection `json:"editors"` @@ -30074,9 +30230,11 @@ type Risk struct { // the group of users who are responsible for risk oversight Stakeholder *Group `json:"stakeholder,omitempty"` // temporary delegates for the risk, used for temporary ownership - Delegate *Group `json:"delegate,omitempty"` - Comments *NoteConnection `json:"comments"` - Discussions *DiscussionConnection `json:"discussions"` + Delegate *Group `json:"delegate,omitempty"` + Comments *NoteConnection `json:"comments"` + Discussions *DiscussionConnection `json:"discussions"` + Reviews *ReviewConnection `json:"reviews"` + Remediations *RemediationConnection `json:"remediations"` } func (Risk) IsNode() {} @@ -30559,6 +30717,69 @@ type RiskWhereInput struct { DelegateIDNotNil *bool `json:"delegateIDNotNil,omitempty"` DelegateIDEqualFold *string `json:"delegateIDEqualFold,omitempty"` DelegateIDContainsFold *string `json:"delegateIDContainsFold,omitempty"` + // mitigated_at field predicates + MitigatedAt *models.DateTime `json:"mitigatedAt,omitempty"` + MitigatedAtNeq *models.DateTime `json:"mitigatedAtNEQ,omitempty"` + MitigatedAtIn []*models.DateTime `json:"mitigatedAtIn,omitempty"` + MitigatedAtNotIn []*models.DateTime `json:"mitigatedAtNotIn,omitempty"` + MitigatedAtGt *models.DateTime `json:"mitigatedAtGT,omitempty"` + MitigatedAtGte *models.DateTime `json:"mitigatedAtGTE,omitempty"` + MitigatedAtLt *models.DateTime `json:"mitigatedAtLT,omitempty"` + MitigatedAtLte *models.DateTime `json:"mitigatedAtLTE,omitempty"` + MitigatedAtIsNil *bool `json:"mitigatedAtIsNil,omitempty"` + MitigatedAtNotNil *bool `json:"mitigatedAtNotNil,omitempty"` + // review_required field predicates + ReviewRequired *bool `json:"reviewRequired,omitempty"` + ReviewRequiredNeq *bool `json:"reviewRequiredNEQ,omitempty"` + ReviewRequiredIsNil *bool `json:"reviewRequiredIsNil,omitempty"` + ReviewRequiredNotNil *bool `json:"reviewRequiredNotNil,omitempty"` + // last_reviewed_at field predicates + LastReviewedAt *models.DateTime `json:"lastReviewedAt,omitempty"` + LastReviewedAtNeq *models.DateTime `json:"lastReviewedAtNEQ,omitempty"` + LastReviewedAtIn []*models.DateTime `json:"lastReviewedAtIn,omitempty"` + LastReviewedAtNotIn []*models.DateTime `json:"lastReviewedAtNotIn,omitempty"` + LastReviewedAtGt *models.DateTime `json:"lastReviewedAtGT,omitempty"` + LastReviewedAtGte *models.DateTime `json:"lastReviewedAtGTE,omitempty"` + LastReviewedAtLt *models.DateTime `json:"lastReviewedAtLT,omitempty"` + LastReviewedAtLte *models.DateTime `json:"lastReviewedAtLTE,omitempty"` + LastReviewedAtIsNil *bool `json:"lastReviewedAtIsNil,omitempty"` + LastReviewedAtNotNil *bool `json:"lastReviewedAtNotNil,omitempty"` + // review_frequency field predicates + ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` + ReviewFrequencyNeq *enums.Frequency `json:"reviewFrequencyNEQ,omitempty"` + ReviewFrequencyIn []enums.Frequency `json:"reviewFrequencyIn,omitempty"` + ReviewFrequencyNotIn []enums.Frequency `json:"reviewFrequencyNotIn,omitempty"` + ReviewFrequencyIsNil *bool `json:"reviewFrequencyIsNil,omitempty"` + ReviewFrequencyNotNil *bool `json:"reviewFrequencyNotNil,omitempty"` + // next_review_due_at field predicates + NextReviewDueAt *models.DateTime `json:"nextReviewDueAt,omitempty"` + NextReviewDueAtNeq *models.DateTime `json:"nextReviewDueAtNEQ,omitempty"` + NextReviewDueAtIn []*models.DateTime `json:"nextReviewDueAtIn,omitempty"` + NextReviewDueAtNotIn []*models.DateTime `json:"nextReviewDueAtNotIn,omitempty"` + NextReviewDueAtGt *models.DateTime `json:"nextReviewDueAtGT,omitempty"` + NextReviewDueAtGte *models.DateTime `json:"nextReviewDueAtGTE,omitempty"` + NextReviewDueAtLt *models.DateTime `json:"nextReviewDueAtLT,omitempty"` + NextReviewDueAtLte *models.DateTime `json:"nextReviewDueAtLTE,omitempty"` + NextReviewDueAtIsNil *bool `json:"nextReviewDueAtIsNil,omitempty"` + NextReviewDueAtNotNil *bool `json:"nextReviewDueAtNotNil,omitempty"` + // residual_score field predicates + ResidualScore *int64 `json:"residualScore,omitempty"` + ResidualScoreNeq *int64 `json:"residualScoreNEQ,omitempty"` + ResidualScoreIn []int64 `json:"residualScoreIn,omitempty"` + ResidualScoreNotIn []int64 `json:"residualScoreNotIn,omitempty"` + ResidualScoreGt *int64 `json:"residualScoreGT,omitempty"` + ResidualScoreGte *int64 `json:"residualScoreGTE,omitempty"` + ResidualScoreLt *int64 `json:"residualScoreLT,omitempty"` + ResidualScoreLte *int64 `json:"residualScoreLTE,omitempty"` + ResidualScoreIsNil *bool `json:"residualScoreIsNil,omitempty"` + ResidualScoreNotNil *bool `json:"residualScoreNotNil,omitempty"` + // risk_decision field predicates + RiskDecision *enums.RiskDecision `json:"riskDecision,omitempty"` + RiskDecisionNeq *enums.RiskDecision `json:"riskDecisionNEQ,omitempty"` + RiskDecisionIn []enums.RiskDecision `json:"riskDecisionIn,omitempty"` + RiskDecisionNotIn []enums.RiskDecision `json:"riskDecisionNotIn,omitempty"` + RiskDecisionIsNil *bool `json:"riskDecisionIsNil,omitempty"` + RiskDecisionNotNil *bool `json:"riskDecisionNotNil,omitempty"` // owner edge predicates HasOwner *bool `json:"hasOwner,omitempty"` HasOwnerWith []*OrganizationWhereInput `json:"hasOwnerWith,omitempty"` @@ -30628,6 +30849,12 @@ type RiskWhereInput struct { // discussions edge predicates HasDiscussions *bool `json:"hasDiscussions,omitempty"` HasDiscussionsWith []*DiscussionWhereInput `json:"hasDiscussionsWith,omitempty"` + // reviews edge predicates + HasReviews *bool `json:"hasReviews,omitempty"` + HasReviewsWith []*ReviewWhereInput `json:"hasReviewsWith,omitempty"` + // remediations edge predicates + HasRemediations *bool `json:"hasRemediations,omitempty"` + HasRemediationsWith []*RemediationWhereInput `json:"hasRemediationsWith,omitempty"` // Filter for tagsHas to contain a specific value TagsHas *string `json:"tagsHas,omitempty"` } @@ -39384,8 +39611,10 @@ type UpdateDirectoryAccountInput struct { Metadata map[string]any `json:"metadata,omitempty"` ClearMetadata *bool `json:"clearMetadata,omitempty"` // cursor or ETag supplied by the source system for auditing - SourceVersion *string `json:"sourceVersion,omitempty"` - ClearSourceVersion *bool `json:"clearSourceVersion,omitempty"` + SourceVersion *string `json:"sourceVersion,omitempty"` + ClearSourceVersion *bool `json:"clearSourceVersion,omitempty"` + // indicates this directory account originates from the installation designated as the primary directory source for its owner organization + PrimarySource *bool `json:"primarySource,omitempty"` OwnerID *string `json:"ownerID,omitempty"` ClearOwner *bool `json:"clearOwner,omitempty"` EnvironmentID *string `json:"environmentID,omitempty"` @@ -39893,9 +40122,9 @@ type UpdateEntityInput struct { // the risk score for the entity RiskScore *int64 `json:"riskScore,omitempty"` ClearRiskScore *bool `json:"clearRiskScore,omitempty"` - // the tier classification for the entity - Tier *string `json:"tier,omitempty"` - ClearTier *bool `json:"clearTier,omitempty"` + // the vendor risk tier classification, used to determine the depth of TPRM assessment required + Tier *enums.VendorTier `json:"tier,omitempty"` + ClearTier *bool `json:"clearTier,omitempty"` // the cadence for reviewing the entity ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` ClearReviewFrequency *bool `json:"clearReviewFrequency,omitempty"` @@ -39965,6 +40194,9 @@ type UpdateEntityInput struct { AddAssessmentResponseIDs []string `json:"addAssessmentResponseIDs,omitempty"` RemoveAssessmentResponseIDs []string `json:"removeAssessmentResponseIDs,omitempty"` ClearAssessmentResponses *bool `json:"clearAssessmentResponses,omitempty"` + AddVendorRiskScoreIDs []string `json:"addVendorRiskScoreIDs,omitempty"` + RemoveVendorRiskScoreIDs []string `json:"removeVendorRiskScoreIDs,omitempty"` + ClearVendorRiskScores *bool `json:"clearVendorRiskScores,omitempty"` AddIntegrationIDs []string `json:"addIntegrationIDs,omitempty"` RemoveIntegrationIDs []string `json:"removeIntegrationIDs,omitempty"` ClearIntegrations *bool `json:"clearIntegrations,omitempty"` @@ -41839,6 +42071,12 @@ type UpdateOrganizationInput struct { AddDiscussionIDs []string `json:"addDiscussionIDs,omitempty"` RemoveDiscussionIDs []string `json:"removeDiscussionIDs,omitempty"` ClearDiscussions *bool `json:"clearDiscussions,omitempty"` + AddVendorScoringConfigIDs []string `json:"addVendorScoringConfigIDs,omitempty"` + RemoveVendorScoringConfigIDs []string `json:"removeVendorScoringConfigIDs,omitempty"` + ClearVendorScoringConfigs *bool `json:"clearVendorScoringConfigs,omitempty"` + AddVendorRiskScoreIDs []string `json:"addVendorRiskScoreIDs,omitempty"` + RemoveVendorRiskScoreIDs []string `json:"removeVendorRiskScoreIDs,omitempty"` + ClearVendorRiskScores *bool `json:"clearVendorRiskScores,omitempty"` AddOrgMembers []*CreateOrgMembershipInput `json:"addOrgMembers,omitempty"` RemoveOrgMembers []string `json:"removeOrgMembers,omitempty"` UpdateOrgSettings *UpdateOrganizationSettingInput `json:"updateOrgSettings,omitempty"` @@ -42105,6 +42343,15 @@ type UpdatePlatformInput struct { AddFileIDs []string `json:"addFileIDs,omitempty"` RemoveFileIDs []string `json:"removeFileIDs,omitempty"` ClearFiles *bool `json:"clearFiles,omitempty"` + AddArchitectureDiagramIDs []string `json:"addArchitectureDiagramIDs,omitempty"` + RemoveArchitectureDiagramIDs []string `json:"removeArchitectureDiagramIDs,omitempty"` + ClearArchitectureDiagrams *bool `json:"clearArchitectureDiagrams,omitempty"` + AddDataFlowDiagramIDs []string `json:"addDataFlowDiagramIDs,omitempty"` + RemoveDataFlowDiagramIDs []string `json:"removeDataFlowDiagramIDs,omitempty"` + ClearDataFlowDiagrams *bool `json:"clearDataFlowDiagrams,omitempty"` + AddTrustBoundaryDiagramIDs []string `json:"addTrustBoundaryDiagramIDs,omitempty"` + RemoveTrustBoundaryDiagramIDs []string `json:"removeTrustBoundaryDiagramIDs,omitempty"` + ClearTrustBoundaryDiagrams *bool `json:"clearTrustBoundaryDiagrams,omitempty"` AddRiskIDs []string `json:"addRiskIDs,omitempty"` RemoveRiskIDs []string `json:"removeRiskIDs,omitempty"` ClearRisks *bool `json:"clearRisks,omitempty"` @@ -42431,6 +42678,9 @@ type UpdateRemediationInput struct { // title or short description of the remediation effort Title *string `json:"title,omitempty"` ClearTitle *bool `json:"clearTitle,omitempty"` + // status of the remediation, such as pending, in_progress, or completed + Status *enums.RemediationStatus `json:"status,omitempty"` + ClearStatus *bool `json:"clearStatus,omitempty"` // state of the remediation, such as pending or completed State *string `json:"state,omitempty"` ClearState *bool `json:"clearState,omitempty"` @@ -42733,9 +42983,29 @@ type UpdateRiskInput struct { BusinessCosts *string `json:"businessCosts,omitempty"` ClearBusinessCosts *bool `json:"clearBusinessCosts,omitempty"` // structured details of the business costs in JSON format - BusinessCostsJSON []any `json:"businessCostsJSON,omitempty"` - AppendBusinessCostsJSON []any `json:"appendBusinessCostsJSON,omitempty"` - ClearBusinessCostsJSON *bool `json:"clearBusinessCostsJSON,omitempty"` + BusinessCostsJSON []any `json:"businessCostsJSON,omitempty"` + AppendBusinessCostsJSON []any `json:"appendBusinessCostsJSON,omitempty"` + ClearBusinessCostsJSON *bool `json:"clearBusinessCostsJSON,omitempty"` + // the time when the risk was mitigated + MitigatedAt *models.DateTime `json:"mitigatedAt,omitempty"` + ClearMitigatedAt *bool `json:"clearMitigatedAt,omitempty"` + // indicates if a periodic review is required for the risk + ReviewRequired *bool `json:"reviewRequired,omitempty"` + ClearReviewRequired *bool `json:"clearReviewRequired,omitempty"` + // the time when the risk was last reviewed + LastReviewedAt *models.DateTime `json:"lastReviewedAt,omitempty"` + ClearLastReviewedAt *bool `json:"clearLastReviewedAt,omitempty"` + ReviewFrequency *enums.Frequency `json:"reviewFrequency,omitempty"` + ClearReviewFrequency *bool `json:"clearReviewFrequency,omitempty"` + // the time when the next review is due for the risk + NextReviewDueAt *models.DateTime `json:"nextReviewDueAt,omitempty"` + ClearNextReviewDueAt *bool `json:"clearNextReviewDueAt,omitempty"` + // score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + ResidualScore *int64 `json:"residualScore,omitempty"` + ClearResidualScore *bool `json:"clearResidualScore,omitempty"` + // the decision made for the risk - accept, transfer, avoid, mitigate, or none + RiskDecision *enums.RiskDecision `json:"riskDecision,omitempty"` + ClearRiskDecision *bool `json:"clearRiskDecision,omitempty"` AddBlockedGroupIDs []string `json:"addBlockedGroupIDs,omitempty"` RemoveBlockedGroupIDs []string `json:"removeBlockedGroupIDs,omitempty"` ClearBlockedGroups *bool `json:"clearBlockedGroups,omitempty"` @@ -42796,6 +43066,12 @@ type UpdateRiskInput struct { AddDiscussionIDs []string `json:"addDiscussionIDs,omitempty"` RemoveDiscussionIDs []string `json:"removeDiscussionIDs,omitempty"` ClearDiscussions *bool `json:"clearDiscussions,omitempty"` + AddReviewIDs []string `json:"addReviewIDs,omitempty"` + RemoveReviewIDs []string `json:"removeReviewIDs,omitempty"` + ClearReviews *bool `json:"clearReviews,omitempty"` + AddRemediationIDs []string `json:"addRemediationIDs,omitempty"` + RemoveRemediationIDs []string `json:"removeRemediationIDs,omitempty"` + ClearRemediations *bool `json:"clearRemediations,omitempty"` AddDiscussion *CreateDiscussionInput `json:"addDiscussion,omitempty"` UpdateDiscussion *UpdateDiscussionsInput `json:"updateDiscussion,omitempty"` DeleteDiscussion *string `json:"deleteDiscussion,omitempty"` @@ -44011,6 +44287,59 @@ type UpdateUserSettingInput struct { ClearDefaultOrg *bool `json:"clearDefaultOrg,omitempty"` } +// UpdateVendorRiskScoreInput is used for update VendorRiskScore object. +// Input was generated by ent. +type UpdateVendorRiskScoreInput struct { + // tags associated with the object + Tags []string `json:"tags,omitempty"` + AppendTags []string `json:"appendTags,omitempty"` + ClearTags *bool `json:"clearTags,omitempty"` + // stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + QuestionKey *string `json:"questionKey,omitempty"` + // question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + QuestionName *string `json:"questionName,omitempty"` + // question description captured at assessment time + QuestionDescription *string `json:"questionDescription,omitempty"` + ClearQuestionDescription *bool `json:"clearQuestionDescription,omitempty"` + // question category captured at assessment time + QuestionCategory *enums.VendorScoringCategory `json:"questionCategory,omitempty"` + // user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + Impact *enums.VendorRiskImpact `json:"impact,omitempty"` + // user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + Likelihood *enums.VendorRiskLikelihood `json:"likelihood,omitempty"` + // factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + Answer *string `json:"answer,omitempty"` + ClearAnswer *bool `json:"clearAnswer,omitempty"` + // optional justification or context for the assigned impact and likelihood + Notes *string `json:"notes,omitempty"` + ClearNotes *bool `json:"clearNotes,omitempty"` + VendorScoringConfigID *string `json:"vendorScoringConfigID,omitempty"` + ClearVendorScoringConfig *bool `json:"clearVendorScoringConfig,omitempty"` + EntityID *string `json:"entityID,omitempty"` + AssessmentResponseID *string `json:"assessmentResponseID,omitempty"` + ClearAssessmentResponse *bool `json:"clearAssessmentResponse,omitempty"` +} + +// UpdateVendorScoringConfigInput is used for update VendorScoringConfig object. +// Input was generated by ent. +type UpdateVendorScoringConfigInput struct { + // tags associated with the object + Tags []string `json:"tags,omitempty"` + AppendTags []string `json:"appendTags,omitempty"` + ClearTags *bool `json:"clearTags,omitempty"` + // org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + Questions *string `json:"questions,omitempty"` + // controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + ScoringMode *enums.VendorScoringMode `json:"scoringMode,omitempty"` + // org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + RiskThresholds *string `json:"riskThresholds,omitempty"` + OwnerID *string `json:"ownerID,omitempty"` + ClearOwner *bool `json:"clearOwner,omitempty"` + AddVendorRiskScoreIDs []string `json:"addVendorRiskScoreIDs,omitempty"` + RemoveVendorRiskScoreIDs []string `json:"removeVendorRiskScoreIDs,omitempty"` + ClearVendorRiskScores *bool `json:"clearVendorRiskScores,omitempty"` +} + // UpdateVulnerabilityInput is used for update Vulnerability object. // Input was generated by ent. type UpdateVulnerabilityInput struct { @@ -44100,6 +44429,28 @@ type UpdateVulnerabilityInput struct { Impacts []string `json:"impacts,omitempty"` AppendImpacts []string `json:"appendImpacts,omitempty"` ClearImpacts *bool `json:"clearImpacts,omitempty"` + // CWE identifiers associated with the vulnerability + CweIds []string `json:"cweIds,omitempty"` + AppendCweIds []string `json:"appendCweIds,omitempty"` + ClearCweIds *bool `json:"clearCweIds,omitempty"` + // version range affected by the vulnerability + VulnerableVersionRange *string `json:"vulnerableVersionRange,omitempty"` + ClearVulnerableVersionRange *bool `json:"clearVulnerableVersionRange,omitempty"` + // earliest version that fixes the vulnerability + FirstPatchedVersion *string `json:"firstPatchedVersion,omitempty"` + ClearFirstPatchedVersion *bool `json:"clearFirstPatchedVersion,omitempty"` + // name of the vulnerable package or dependency + PackageName *string `json:"packageName,omitempty"` + ClearPackageName *bool `json:"clearPackageName,omitempty"` + // ecosystem of the vulnerable package such as npm, pip, or maven + PackageEcosystem *string `json:"packageEcosystem,omitempty"` + ClearPackageEcosystem *bool `json:"clearPackageEcosystem,omitempty"` + // path to the manifest file declaring the vulnerable dependency + ManifestPath *string `json:"manifestPath,omitempty"` + ClearManifestPath *bool `json:"clearManifestPath,omitempty"` + // scope of the dependency such as runtime or development + DependencyScope *string `json:"dependencyScope,omitempty"` + ClearDependencyScope *bool `json:"clearDependencyScope,omitempty"` // timestamp when the vulnerability was published PublishedAt *models.DateTime `json:"publishedAt,omitempty"` ClearPublishedAt *bool `json:"clearPublishedAt,omitempty"` @@ -44109,6 +44460,21 @@ type UpdateVulnerabilityInput struct { // timestamp when the source last updated the vulnerability SourceUpdatedAt *models.DateTime `json:"sourceUpdatedAt,omitempty"` ClearSourceUpdatedAt *bool `json:"clearSourceUpdatedAt,omitempty"` + // timestamp when the vulnerability was dismissed + DismissedAt *models.DateTime `json:"dismissedAt,omitempty"` + ClearDismissedAt *bool `json:"clearDismissedAt,omitempty"` + // reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + DismissedReason *string `json:"dismissedReason,omitempty"` + ClearDismissedReason *bool `json:"clearDismissedReason,omitempty"` + // free-text explanation provided when the vulnerability was dismissed + DismissedComment *string `json:"dismissedComment,omitempty"` + ClearDismissedComment *bool `json:"clearDismissedComment,omitempty"` + // timestamp when the vulnerability was marked as fixed + FixedAt *models.DateTime `json:"fixedAt,omitempty"` + ClearFixedAt *bool `json:"clearFixedAt,omitempty"` + // timestamp when the vulnerability was automatically dismissed by the source system + AutoDismissedAt *models.DateTime `json:"autoDismissedAt,omitempty"` + ClearAutoDismissedAt *bool `json:"clearAutoDismissedAt,omitempty"` // link to the vulnerability in the source system ExternalURI *string `json:"externalURI,omitempty"` ClearExternalURI *bool `json:"clearExternalURI,omitempty"` @@ -45006,6 +45372,556 @@ type UserWhereInput struct { TagsHas *string `json:"tagsHas,omitempty"` } +type VendorRiskScore struct { + ID string `json:"id"` + CreatedAt *time.Time `json:"createdAt,omitempty"` + UpdatedAt *time.Time `json:"updatedAt,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + UpdatedBy *string `json:"updatedBy,omitempty"` + // tags associated with the object + Tags []string `json:"tags,omitempty"` + // the ID of the organization owner of the object + OwnerID *string `json:"ownerID,omitempty"` + // stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + QuestionKey string `json:"questionKey"` + // question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + QuestionName string `json:"questionName"` + // question description captured at assessment time + QuestionDescription *string `json:"questionDescription,omitempty"` + // question category captured at assessment time + QuestionCategory enums.VendorScoringCategory `json:"questionCategory"` + // expected answer format captured at assessment time + AnswerType enums.VendorScoringAnswerType `json:"answerType"` + // user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + Impact enums.VendorRiskImpact `json:"impact"` + // user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + Likelihood enums.VendorRiskLikelihood `json:"likelihood"` + // hook-computed risk score: impactNumeric x likelihoodNumeric + Score float64 `json:"score"` + // factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + Answer *string `json:"answer,omitempty"` + // optional justification or context for the assigned impact and likelihood + Notes *string `json:"notes,omitempty"` + // the scoring config this assessment belongs to; auto-resolved from org context if not provided + VendorScoringConfigID *string `json:"vendorScoringConfigID,omitempty"` + // the vendor entity being assessed + EntityID string `json:"entityID"` + // the assessment response this score belongs to; scopes scores to a specific assessment cycle + AssessmentResponseID *string `json:"assessmentResponseID,omitempty"` + Owner *Organization `json:"owner,omitempty"` + VendorScoringConfig *VendorScoringConfig `json:"vendorScoringConfig,omitempty"` + Entity *Entity `json:"entity"` + AssessmentResponse *AssessmentResponse `json:"assessmentResponse,omitempty"` +} + +func (VendorRiskScore) IsNode() {} + +// Return response for createBulkVendorRiskScore mutation +type VendorRiskScoreBulkCreatePayload struct { + // Created vendorRiskScores + VendorRiskScores []*VendorRiskScore `json:"vendorRiskScores,omitempty"` +} + +// Return response for deleteBulkVendorRiskScore mutation +type VendorRiskScoreBulkDeletePayload struct { + // Deleted vendorRiskScore IDs + DeletedIDs []string `json:"deletedIDs"` +} + +// Return response for updateBulkVendorRiskScore mutation +type VendorRiskScoreBulkUpdatePayload struct { + // Updated vendorRiskScores + VendorRiskScores []*VendorRiskScore `json:"vendorRiskScores,omitempty"` + // IDs of the updated vendorRiskScores + UpdatedIDs []string `json:"updatedIDs,omitempty"` +} + +// A connection to a list of items. +type VendorRiskScoreConnection struct { + // A list of edges. + Edges []*VendorRiskScoreEdge `json:"edges,omitempty"` + // Information to aid in pagination. + PageInfo *PageInfo `json:"pageInfo"` + // Identifies the total count of items in the connection. + TotalCount int64 `json:"totalCount"` +} + +// Return response for createVendorRiskScore mutation +type VendorRiskScoreCreatePayload struct { + // Created vendorRiskScore + VendorRiskScore *VendorRiskScore `json:"vendorRiskScore"` +} + +// Return response for deleteVendorRiskScore mutation +type VendorRiskScoreDeletePayload struct { + // Deleted vendorRiskScore ID + DeletedID string `json:"deletedID"` +} + +// An edge in a connection. +type VendorRiskScoreEdge struct { + // The item at the end of the edge. + Node *VendorRiskScore `json:"node,omitempty"` + // A cursor for use in pagination. + Cursor string `json:"cursor"` +} + +// Ordering options for VendorRiskScore connections +type VendorRiskScoreOrder struct { + // The ordering direction. + Direction OrderDirection `json:"direction"` + // The field by which to order VendorRiskScores. + Field VendorRiskScoreOrderField `json:"field"` +} + +// Return response for updateVendorRiskScore mutation +type VendorRiskScoreUpdatePayload struct { + // Updated vendorRiskScore + VendorRiskScore *VendorRiskScore `json:"vendorRiskScore"` +} + +// VendorRiskScoreWhereInput is used for filtering VendorRiskScore objects. +// Input was generated by ent. +type VendorRiskScoreWhereInput struct { + Not *VendorRiskScoreWhereInput `json:"not,omitempty"` + And []*VendorRiskScoreWhereInput `json:"and,omitempty"` + Or []*VendorRiskScoreWhereInput `json:"or,omitempty"` + // id field predicates + ID *string `json:"id,omitempty"` + IDNeq *string `json:"idNEQ,omitempty"` + IDIn []string `json:"idIn,omitempty"` + IDNotIn []string `json:"idNotIn,omitempty"` + IDGt *string `json:"idGT,omitempty"` + IDGte *string `json:"idGTE,omitempty"` + IDLt *string `json:"idLT,omitempty"` + IDLte *string `json:"idLTE,omitempty"` + IDEqualFold *string `json:"idEqualFold,omitempty"` + IDContainsFold *string `json:"idContainsFold,omitempty"` + // created_at field predicates + CreatedAt *time.Time `json:"createdAt,omitempty"` + CreatedAtNeq *time.Time `json:"createdAtNEQ,omitempty"` + CreatedAtIn []*time.Time `json:"createdAtIn,omitempty"` + CreatedAtNotIn []*time.Time `json:"createdAtNotIn,omitempty"` + CreatedAtGt *time.Time `json:"createdAtGT,omitempty"` + CreatedAtGte *time.Time `json:"createdAtGTE,omitempty"` + CreatedAtLt *time.Time `json:"createdAtLT,omitempty"` + CreatedAtLte *time.Time `json:"createdAtLTE,omitempty"` + CreatedAtIsNil *bool `json:"createdAtIsNil,omitempty"` + CreatedAtNotNil *bool `json:"createdAtNotNil,omitempty"` + // updated_at field predicates + UpdatedAt *time.Time `json:"updatedAt,omitempty"` + UpdatedAtNeq *time.Time `json:"updatedAtNEQ,omitempty"` + UpdatedAtIn []*time.Time `json:"updatedAtIn,omitempty"` + UpdatedAtNotIn []*time.Time `json:"updatedAtNotIn,omitempty"` + UpdatedAtGt *time.Time `json:"updatedAtGT,omitempty"` + UpdatedAtGte *time.Time `json:"updatedAtGTE,omitempty"` + UpdatedAtLt *time.Time `json:"updatedAtLT,omitempty"` + UpdatedAtLte *time.Time `json:"updatedAtLTE,omitempty"` + UpdatedAtIsNil *bool `json:"updatedAtIsNil,omitempty"` + UpdatedAtNotNil *bool `json:"updatedAtNotNil,omitempty"` + // created_by field predicates + CreatedBy *string `json:"createdBy,omitempty"` + CreatedByNeq *string `json:"createdByNEQ,omitempty"` + CreatedByIn []string `json:"createdByIn,omitempty"` + CreatedByNotIn []string `json:"createdByNotIn,omitempty"` + CreatedByGt *string `json:"createdByGT,omitempty"` + CreatedByGte *string `json:"createdByGTE,omitempty"` + CreatedByLt *string `json:"createdByLT,omitempty"` + CreatedByLte *string `json:"createdByLTE,omitempty"` + CreatedByContains *string `json:"createdByContains,omitempty"` + CreatedByHasPrefix *string `json:"createdByHasPrefix,omitempty"` + CreatedByHasSuffix *string `json:"createdByHasSuffix,omitempty"` + CreatedByIsNil *bool `json:"createdByIsNil,omitempty"` + CreatedByNotNil *bool `json:"createdByNotNil,omitempty"` + CreatedByEqualFold *string `json:"createdByEqualFold,omitempty"` + CreatedByContainsFold *string `json:"createdByContainsFold,omitempty"` + // updated_by field predicates + UpdatedBy *string `json:"updatedBy,omitempty"` + UpdatedByNeq *string `json:"updatedByNEQ,omitempty"` + UpdatedByIn []string `json:"updatedByIn,omitempty"` + UpdatedByNotIn []string `json:"updatedByNotIn,omitempty"` + UpdatedByGt *string `json:"updatedByGT,omitempty"` + UpdatedByGte *string `json:"updatedByGTE,omitempty"` + UpdatedByLt *string `json:"updatedByLT,omitempty"` + UpdatedByLte *string `json:"updatedByLTE,omitempty"` + UpdatedByContains *string `json:"updatedByContains,omitempty"` + UpdatedByHasPrefix *string `json:"updatedByHasPrefix,omitempty"` + UpdatedByHasSuffix *string `json:"updatedByHasSuffix,omitempty"` + UpdatedByIsNil *bool `json:"updatedByIsNil,omitempty"` + UpdatedByNotNil *bool `json:"updatedByNotNil,omitempty"` + UpdatedByEqualFold *string `json:"updatedByEqualFold,omitempty"` + UpdatedByContainsFold *string `json:"updatedByContainsFold,omitempty"` + // owner_id field predicates + OwnerID *string `json:"ownerID,omitempty"` + OwnerIdneq *string `json:"ownerIDNEQ,omitempty"` + OwnerIDIn []string `json:"ownerIDIn,omitempty"` + OwnerIDNotIn []string `json:"ownerIDNotIn,omitempty"` + OwnerIdgt *string `json:"ownerIDGT,omitempty"` + OwnerIdgte *string `json:"ownerIDGTE,omitempty"` + OwnerIdlt *string `json:"ownerIDLT,omitempty"` + OwnerIdlte *string `json:"ownerIDLTE,omitempty"` + OwnerIDContains *string `json:"ownerIDContains,omitempty"` + OwnerIDHasPrefix *string `json:"ownerIDHasPrefix,omitempty"` + OwnerIDHasSuffix *string `json:"ownerIDHasSuffix,omitempty"` + OwnerIDIsNil *bool `json:"ownerIDIsNil,omitempty"` + OwnerIDNotNil *bool `json:"ownerIDNotNil,omitempty"` + OwnerIDEqualFold *string `json:"ownerIDEqualFold,omitempty"` + OwnerIDContainsFold *string `json:"ownerIDContainsFold,omitempty"` + // question_key field predicates + QuestionKey *string `json:"questionKey,omitempty"` + QuestionKeyNeq *string `json:"questionKeyNEQ,omitempty"` + QuestionKeyIn []string `json:"questionKeyIn,omitempty"` + QuestionKeyNotIn []string `json:"questionKeyNotIn,omitempty"` + QuestionKeyGt *string `json:"questionKeyGT,omitempty"` + QuestionKeyGte *string `json:"questionKeyGTE,omitempty"` + QuestionKeyLt *string `json:"questionKeyLT,omitempty"` + QuestionKeyLte *string `json:"questionKeyLTE,omitempty"` + QuestionKeyContains *string `json:"questionKeyContains,omitempty"` + QuestionKeyHasPrefix *string `json:"questionKeyHasPrefix,omitempty"` + QuestionKeyHasSuffix *string `json:"questionKeyHasSuffix,omitempty"` + QuestionKeyEqualFold *string `json:"questionKeyEqualFold,omitempty"` + QuestionKeyContainsFold *string `json:"questionKeyContainsFold,omitempty"` + // question_name field predicates + QuestionName *string `json:"questionName,omitempty"` + QuestionNameNeq *string `json:"questionNameNEQ,omitempty"` + QuestionNameIn []string `json:"questionNameIn,omitempty"` + QuestionNameNotIn []string `json:"questionNameNotIn,omitempty"` + QuestionNameGt *string `json:"questionNameGT,omitempty"` + QuestionNameGte *string `json:"questionNameGTE,omitempty"` + QuestionNameLt *string `json:"questionNameLT,omitempty"` + QuestionNameLte *string `json:"questionNameLTE,omitempty"` + QuestionNameContains *string `json:"questionNameContains,omitempty"` + QuestionNameHasPrefix *string `json:"questionNameHasPrefix,omitempty"` + QuestionNameHasSuffix *string `json:"questionNameHasSuffix,omitempty"` + QuestionNameEqualFold *string `json:"questionNameEqualFold,omitempty"` + QuestionNameContainsFold *string `json:"questionNameContainsFold,omitempty"` + // question_description field predicates + QuestionDescription *string `json:"questionDescription,omitempty"` + QuestionDescriptionNeq *string `json:"questionDescriptionNEQ,omitempty"` + QuestionDescriptionIn []string `json:"questionDescriptionIn,omitempty"` + QuestionDescriptionNotIn []string `json:"questionDescriptionNotIn,omitempty"` + QuestionDescriptionGt *string `json:"questionDescriptionGT,omitempty"` + QuestionDescriptionGte *string `json:"questionDescriptionGTE,omitempty"` + QuestionDescriptionLt *string `json:"questionDescriptionLT,omitempty"` + QuestionDescriptionLte *string `json:"questionDescriptionLTE,omitempty"` + QuestionDescriptionContains *string `json:"questionDescriptionContains,omitempty"` + QuestionDescriptionHasPrefix *string `json:"questionDescriptionHasPrefix,omitempty"` + QuestionDescriptionHasSuffix *string `json:"questionDescriptionHasSuffix,omitempty"` + QuestionDescriptionIsNil *bool `json:"questionDescriptionIsNil,omitempty"` + QuestionDescriptionNotNil *bool `json:"questionDescriptionNotNil,omitempty"` + QuestionDescriptionEqualFold *string `json:"questionDescriptionEqualFold,omitempty"` + QuestionDescriptionContainsFold *string `json:"questionDescriptionContainsFold,omitempty"` + // question_category field predicates + QuestionCategory *enums.VendorScoringCategory `json:"questionCategory,omitempty"` + QuestionCategoryNeq *enums.VendorScoringCategory `json:"questionCategoryNEQ,omitempty"` + QuestionCategoryIn []enums.VendorScoringCategory `json:"questionCategoryIn,omitempty"` + QuestionCategoryNotIn []enums.VendorScoringCategory `json:"questionCategoryNotIn,omitempty"` + // answer_type field predicates + AnswerType *enums.VendorScoringAnswerType `json:"answerType,omitempty"` + AnswerTypeNeq *enums.VendorScoringAnswerType `json:"answerTypeNEQ,omitempty"` + AnswerTypeIn []enums.VendorScoringAnswerType `json:"answerTypeIn,omitempty"` + AnswerTypeNotIn []enums.VendorScoringAnswerType `json:"answerTypeNotIn,omitempty"` + // impact field predicates + Impact *enums.VendorRiskImpact `json:"impact,omitempty"` + ImpactNeq *enums.VendorRiskImpact `json:"impactNEQ,omitempty"` + ImpactIn []enums.VendorRiskImpact `json:"impactIn,omitempty"` + ImpactNotIn []enums.VendorRiskImpact `json:"impactNotIn,omitempty"` + // likelihood field predicates + Likelihood *enums.VendorRiskLikelihood `json:"likelihood,omitempty"` + LikelihoodNeq *enums.VendorRiskLikelihood `json:"likelihoodNEQ,omitempty"` + LikelihoodIn []enums.VendorRiskLikelihood `json:"likelihoodIn,omitempty"` + LikelihoodNotIn []enums.VendorRiskLikelihood `json:"likelihoodNotIn,omitempty"` + // score field predicates + Score *float64 `json:"score,omitempty"` + ScoreNeq *float64 `json:"scoreNEQ,omitempty"` + ScoreIn []float64 `json:"scoreIn,omitempty"` + ScoreNotIn []float64 `json:"scoreNotIn,omitempty"` + ScoreGt *float64 `json:"scoreGT,omitempty"` + ScoreGte *float64 `json:"scoreGTE,omitempty"` + ScoreLt *float64 `json:"scoreLT,omitempty"` + ScoreLte *float64 `json:"scoreLTE,omitempty"` + // answer field predicates + Answer *string `json:"answer,omitempty"` + AnswerNeq *string `json:"answerNEQ,omitempty"` + AnswerIn []string `json:"answerIn,omitempty"` + AnswerNotIn []string `json:"answerNotIn,omitempty"` + AnswerGt *string `json:"answerGT,omitempty"` + AnswerGte *string `json:"answerGTE,omitempty"` + AnswerLt *string `json:"answerLT,omitempty"` + AnswerLte *string `json:"answerLTE,omitempty"` + AnswerContains *string `json:"answerContains,omitempty"` + AnswerHasPrefix *string `json:"answerHasPrefix,omitempty"` + AnswerHasSuffix *string `json:"answerHasSuffix,omitempty"` + AnswerIsNil *bool `json:"answerIsNil,omitempty"` + AnswerNotNil *bool `json:"answerNotNil,omitempty"` + AnswerEqualFold *string `json:"answerEqualFold,omitempty"` + AnswerContainsFold *string `json:"answerContainsFold,omitempty"` + // notes field predicates + Notes *string `json:"notes,omitempty"` + NotesNeq *string `json:"notesNEQ,omitempty"` + NotesIn []string `json:"notesIn,omitempty"` + NotesNotIn []string `json:"notesNotIn,omitempty"` + NotesGt *string `json:"notesGT,omitempty"` + NotesGte *string `json:"notesGTE,omitempty"` + NotesLt *string `json:"notesLT,omitempty"` + NotesLte *string `json:"notesLTE,omitempty"` + NotesContains *string `json:"notesContains,omitempty"` + NotesHasPrefix *string `json:"notesHasPrefix,omitempty"` + NotesHasSuffix *string `json:"notesHasSuffix,omitempty"` + NotesIsNil *bool `json:"notesIsNil,omitempty"` + NotesNotNil *bool `json:"notesNotNil,omitempty"` + NotesEqualFold *string `json:"notesEqualFold,omitempty"` + NotesContainsFold *string `json:"notesContainsFold,omitempty"` + // vendor_scoring_config_id field predicates + VendorScoringConfigID *string `json:"vendorScoringConfigID,omitempty"` + VendorScoringConfigIdneq *string `json:"vendorScoringConfigIDNEQ,omitempty"` + VendorScoringConfigIDIn []string `json:"vendorScoringConfigIDIn,omitempty"` + VendorScoringConfigIDNotIn []string `json:"vendorScoringConfigIDNotIn,omitempty"` + VendorScoringConfigIdgt *string `json:"vendorScoringConfigIDGT,omitempty"` + VendorScoringConfigIdgte *string `json:"vendorScoringConfigIDGTE,omitempty"` + VendorScoringConfigIdlt *string `json:"vendorScoringConfigIDLT,omitempty"` + VendorScoringConfigIdlte *string `json:"vendorScoringConfigIDLTE,omitempty"` + VendorScoringConfigIDContains *string `json:"vendorScoringConfigIDContains,omitempty"` + VendorScoringConfigIDHasPrefix *string `json:"vendorScoringConfigIDHasPrefix,omitempty"` + VendorScoringConfigIDHasSuffix *string `json:"vendorScoringConfigIDHasSuffix,omitempty"` + VendorScoringConfigIDIsNil *bool `json:"vendorScoringConfigIDIsNil,omitempty"` + VendorScoringConfigIDNotNil *bool `json:"vendorScoringConfigIDNotNil,omitempty"` + VendorScoringConfigIDEqualFold *string `json:"vendorScoringConfigIDEqualFold,omitempty"` + VendorScoringConfigIDContainsFold *string `json:"vendorScoringConfigIDContainsFold,omitempty"` + // entity_id field predicates + EntityID *string `json:"entityID,omitempty"` + EntityIdneq *string `json:"entityIDNEQ,omitempty"` + EntityIDIn []string `json:"entityIDIn,omitempty"` + EntityIDNotIn []string `json:"entityIDNotIn,omitempty"` + EntityIdgt *string `json:"entityIDGT,omitempty"` + EntityIdgte *string `json:"entityIDGTE,omitempty"` + EntityIdlt *string `json:"entityIDLT,omitempty"` + EntityIdlte *string `json:"entityIDLTE,omitempty"` + EntityIDContains *string `json:"entityIDContains,omitempty"` + EntityIDHasPrefix *string `json:"entityIDHasPrefix,omitempty"` + EntityIDHasSuffix *string `json:"entityIDHasSuffix,omitempty"` + EntityIDEqualFold *string `json:"entityIDEqualFold,omitempty"` + EntityIDContainsFold *string `json:"entityIDContainsFold,omitempty"` + // assessment_response_id field predicates + AssessmentResponseID *string `json:"assessmentResponseID,omitempty"` + AssessmentResponseIdneq *string `json:"assessmentResponseIDNEQ,omitempty"` + AssessmentResponseIDIn []string `json:"assessmentResponseIDIn,omitempty"` + AssessmentResponseIDNotIn []string `json:"assessmentResponseIDNotIn,omitempty"` + AssessmentResponseIdgt *string `json:"assessmentResponseIDGT,omitempty"` + AssessmentResponseIdgte *string `json:"assessmentResponseIDGTE,omitempty"` + AssessmentResponseIdlt *string `json:"assessmentResponseIDLT,omitempty"` + AssessmentResponseIdlte *string `json:"assessmentResponseIDLTE,omitempty"` + AssessmentResponseIDContains *string `json:"assessmentResponseIDContains,omitempty"` + AssessmentResponseIDHasPrefix *string `json:"assessmentResponseIDHasPrefix,omitempty"` + AssessmentResponseIDHasSuffix *string `json:"assessmentResponseIDHasSuffix,omitempty"` + AssessmentResponseIDIsNil *bool `json:"assessmentResponseIDIsNil,omitempty"` + AssessmentResponseIDNotNil *bool `json:"assessmentResponseIDNotNil,omitempty"` + AssessmentResponseIDEqualFold *string `json:"assessmentResponseIDEqualFold,omitempty"` + AssessmentResponseIDContainsFold *string `json:"assessmentResponseIDContainsFold,omitempty"` + // owner edge predicates + HasOwner *bool `json:"hasOwner,omitempty"` + HasOwnerWith []*OrganizationWhereInput `json:"hasOwnerWith,omitempty"` + // vendor_scoring_config edge predicates + HasVendorScoringConfig *bool `json:"hasVendorScoringConfig,omitempty"` + HasVendorScoringConfigWith []*VendorScoringConfigWhereInput `json:"hasVendorScoringConfigWith,omitempty"` + // entity edge predicates + HasEntity *bool `json:"hasEntity,omitempty"` + HasEntityWith []*EntityWhereInput `json:"hasEntityWith,omitempty"` + // assessment_response edge predicates + HasAssessmentResponse *bool `json:"hasAssessmentResponse,omitempty"` + HasAssessmentResponseWith []*AssessmentResponseWhereInput `json:"hasAssessmentResponseWith,omitempty"` + // Filter for tagsHas to contain a specific value + TagsHas *string `json:"tagsHas,omitempty"` +} + +type VendorScoringConfig struct { + ID string `json:"id"` + CreatedAt *time.Time `json:"createdAt,omitempty"` + UpdatedAt *time.Time `json:"updatedAt,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + UpdatedBy *string `json:"updatedBy,omitempty"` + // tags associated with the object + Tags []string `json:"tags,omitempty"` + // the organization id that owns the object + OwnerID *string `json:"ownerID,omitempty"` + // org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + Questions string `json:"questions"` + // controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + ScoringMode enums.VendorScoringMode `json:"scoringMode"` + // org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + RiskThresholds string `json:"riskThresholds"` + Owner *Organization `json:"owner,omitempty"` + VendorRiskScores *VendorRiskScoreConnection `json:"vendorRiskScores"` +} + +func (VendorScoringConfig) IsNode() {} + +// Return response for createBulkVendorScoringConfig mutation +type VendorScoringConfigBulkCreatePayload struct { + // Created vendorScoringConfigs + VendorScoringConfigs []*VendorScoringConfig `json:"vendorScoringConfigs,omitempty"` +} + +// Return response for deleteBulkVendorScoringConfig mutation +type VendorScoringConfigBulkDeletePayload struct { + // Deleted vendorScoringConfig IDs + DeletedIDs []string `json:"deletedIDs"` +} + +// Return response for updateBulkVendorScoringConfig mutation +type VendorScoringConfigBulkUpdatePayload struct { + // Updated vendorScoringConfigs + VendorScoringConfigs []*VendorScoringConfig `json:"vendorScoringConfigs,omitempty"` + // IDs of the updated vendorScoringConfigs + UpdatedIDs []string `json:"updatedIDs,omitempty"` +} + +// A connection to a list of items. +type VendorScoringConfigConnection struct { + // A list of edges. + Edges []*VendorScoringConfigEdge `json:"edges,omitempty"` + // Information to aid in pagination. + PageInfo *PageInfo `json:"pageInfo"` + // Identifies the total count of items in the connection. + TotalCount int64 `json:"totalCount"` +} + +// Return response for createVendorScoringConfig mutation +type VendorScoringConfigCreatePayload struct { + // Created vendorScoringConfig + VendorScoringConfig *VendorScoringConfig `json:"vendorScoringConfig"` +} + +// Return response for deleteVendorScoringConfig mutation +type VendorScoringConfigDeletePayload struct { + // Deleted vendorScoringConfig ID + DeletedID string `json:"deletedID"` +} + +// An edge in a connection. +type VendorScoringConfigEdge struct { + // The item at the end of the edge. + Node *VendorScoringConfig `json:"node,omitempty"` + // A cursor for use in pagination. + Cursor string `json:"cursor"` +} + +// Ordering options for VendorScoringConfig connections +type VendorScoringConfigOrder struct { + // The ordering direction. + Direction OrderDirection `json:"direction"` + // The field by which to order VendorScoringConfigs. + Field VendorScoringConfigOrderField `json:"field"` +} + +// Return response for updateVendorScoringConfig mutation +type VendorScoringConfigUpdatePayload struct { + // Updated vendorScoringConfig + VendorScoringConfig *VendorScoringConfig `json:"vendorScoringConfig"` +} + +// VendorScoringConfigWhereInput is used for filtering VendorScoringConfig objects. +// Input was generated by ent. +type VendorScoringConfigWhereInput struct { + Not *VendorScoringConfigWhereInput `json:"not,omitempty"` + And []*VendorScoringConfigWhereInput `json:"and,omitempty"` + Or []*VendorScoringConfigWhereInput `json:"or,omitempty"` + // id field predicates + ID *string `json:"id,omitempty"` + IDNeq *string `json:"idNEQ,omitempty"` + IDIn []string `json:"idIn,omitempty"` + IDNotIn []string `json:"idNotIn,omitempty"` + IDGt *string `json:"idGT,omitempty"` + IDGte *string `json:"idGTE,omitempty"` + IDLt *string `json:"idLT,omitempty"` + IDLte *string `json:"idLTE,omitempty"` + IDEqualFold *string `json:"idEqualFold,omitempty"` + IDContainsFold *string `json:"idContainsFold,omitempty"` + // created_at field predicates + CreatedAt *time.Time `json:"createdAt,omitempty"` + CreatedAtNeq *time.Time `json:"createdAtNEQ,omitempty"` + CreatedAtIn []*time.Time `json:"createdAtIn,omitempty"` + CreatedAtNotIn []*time.Time `json:"createdAtNotIn,omitempty"` + CreatedAtGt *time.Time `json:"createdAtGT,omitempty"` + CreatedAtGte *time.Time `json:"createdAtGTE,omitempty"` + CreatedAtLt *time.Time `json:"createdAtLT,omitempty"` + CreatedAtLte *time.Time `json:"createdAtLTE,omitempty"` + CreatedAtIsNil *bool `json:"createdAtIsNil,omitempty"` + CreatedAtNotNil *bool `json:"createdAtNotNil,omitempty"` + // updated_at field predicates + UpdatedAt *time.Time `json:"updatedAt,omitempty"` + UpdatedAtNeq *time.Time `json:"updatedAtNEQ,omitempty"` + UpdatedAtIn []*time.Time `json:"updatedAtIn,omitempty"` + UpdatedAtNotIn []*time.Time `json:"updatedAtNotIn,omitempty"` + UpdatedAtGt *time.Time `json:"updatedAtGT,omitempty"` + UpdatedAtGte *time.Time `json:"updatedAtGTE,omitempty"` + UpdatedAtLt *time.Time `json:"updatedAtLT,omitempty"` + UpdatedAtLte *time.Time `json:"updatedAtLTE,omitempty"` + UpdatedAtIsNil *bool `json:"updatedAtIsNil,omitempty"` + UpdatedAtNotNil *bool `json:"updatedAtNotNil,omitempty"` + // created_by field predicates + CreatedBy *string `json:"createdBy,omitempty"` + CreatedByNeq *string `json:"createdByNEQ,omitempty"` + CreatedByIn []string `json:"createdByIn,omitempty"` + CreatedByNotIn []string `json:"createdByNotIn,omitempty"` + CreatedByGt *string `json:"createdByGT,omitempty"` + CreatedByGte *string `json:"createdByGTE,omitempty"` + CreatedByLt *string `json:"createdByLT,omitempty"` + CreatedByLte *string `json:"createdByLTE,omitempty"` + CreatedByContains *string `json:"createdByContains,omitempty"` + CreatedByHasPrefix *string `json:"createdByHasPrefix,omitempty"` + CreatedByHasSuffix *string `json:"createdByHasSuffix,omitempty"` + CreatedByIsNil *bool `json:"createdByIsNil,omitempty"` + CreatedByNotNil *bool `json:"createdByNotNil,omitempty"` + CreatedByEqualFold *string `json:"createdByEqualFold,omitempty"` + CreatedByContainsFold *string `json:"createdByContainsFold,omitempty"` + // updated_by field predicates + UpdatedBy *string `json:"updatedBy,omitempty"` + UpdatedByNeq *string `json:"updatedByNEQ,omitempty"` + UpdatedByIn []string `json:"updatedByIn,omitempty"` + UpdatedByNotIn []string `json:"updatedByNotIn,omitempty"` + UpdatedByGt *string `json:"updatedByGT,omitempty"` + UpdatedByGte *string `json:"updatedByGTE,omitempty"` + UpdatedByLt *string `json:"updatedByLT,omitempty"` + UpdatedByLte *string `json:"updatedByLTE,omitempty"` + UpdatedByContains *string `json:"updatedByContains,omitempty"` + UpdatedByHasPrefix *string `json:"updatedByHasPrefix,omitempty"` + UpdatedByHasSuffix *string `json:"updatedByHasSuffix,omitempty"` + UpdatedByIsNil *bool `json:"updatedByIsNil,omitempty"` + UpdatedByNotNil *bool `json:"updatedByNotNil,omitempty"` + UpdatedByEqualFold *string `json:"updatedByEqualFold,omitempty"` + UpdatedByContainsFold *string `json:"updatedByContainsFold,omitempty"` + // owner_id field predicates + OwnerID *string `json:"ownerID,omitempty"` + OwnerIdneq *string `json:"ownerIDNEQ,omitempty"` + OwnerIDIn []string `json:"ownerIDIn,omitempty"` + OwnerIDNotIn []string `json:"ownerIDNotIn,omitempty"` + OwnerIdgt *string `json:"ownerIDGT,omitempty"` + OwnerIdgte *string `json:"ownerIDGTE,omitempty"` + OwnerIdlt *string `json:"ownerIDLT,omitempty"` + OwnerIdlte *string `json:"ownerIDLTE,omitempty"` + OwnerIDContains *string `json:"ownerIDContains,omitempty"` + OwnerIDHasPrefix *string `json:"ownerIDHasPrefix,omitempty"` + OwnerIDHasSuffix *string `json:"ownerIDHasSuffix,omitempty"` + OwnerIDIsNil *bool `json:"ownerIDIsNil,omitempty"` + OwnerIDNotNil *bool `json:"ownerIDNotNil,omitempty"` + OwnerIDEqualFold *string `json:"ownerIDEqualFold,omitempty"` + OwnerIDContainsFold *string `json:"ownerIDContainsFold,omitempty"` + // scoring_mode field predicates + ScoringMode *enums.VendorScoringMode `json:"scoringMode,omitempty"` + ScoringModeNeq *enums.VendorScoringMode `json:"scoringModeNEQ,omitempty"` + ScoringModeIn []enums.VendorScoringMode `json:"scoringModeIn,omitempty"` + ScoringModeNotIn []enums.VendorScoringMode `json:"scoringModeNotIn,omitempty"` + // owner edge predicates + HasOwner *bool `json:"hasOwner,omitempty"` + HasOwnerWith []*OrganizationWhereInput `json:"hasOwnerWith,omitempty"` + // vendor_risk_scores edge predicates + HasVendorRiskScores *bool `json:"hasVendorRiskScores,omitempty"` + HasVendorRiskScoresWith []*VendorRiskScoreWhereInput `json:"hasVendorRiskScoresWith,omitempty"` + // Filter for tagsHas to contain a specific value + TagsHas *string `json:"tagsHas,omitempty"` +} + type Vulnerability struct { ID string `json:"id"` CreatedAt *time.Time `json:"createdAt,omitempty"` @@ -45038,7 +45954,7 @@ type Vulnerability struct { VulnerabilityStatusID *string `json:"vulnerabilityStatusID,omitempty"` // owner of the vulnerability ExternalOwnerID *string `json:"externalOwnerID,omitempty"` - // lifecycle status of the vulnerability + // security level of the vulnerability SecurityLevel *enums.SecurityLevel `json:"securityLevel,omitempty"` // external identifier from the integration source for the vulnerability ExternalID string `json:"externalID"` @@ -45082,12 +45998,36 @@ type Vulnerability struct { References []string `json:"references,omitempty"` // targets or assets impacted by the vulnerability Impacts []string `json:"impacts,omitempty"` + // CWE identifiers associated with the vulnerability + CweIds []string `json:"cweIds,omitempty"` + // version range affected by the vulnerability + VulnerableVersionRange *string `json:"vulnerableVersionRange,omitempty"` + // earliest version that fixes the vulnerability + FirstPatchedVersion *string `json:"firstPatchedVersion,omitempty"` + // name of the vulnerable package or dependency + PackageName *string `json:"packageName,omitempty"` + // ecosystem of the vulnerable package such as npm, pip, or maven + PackageEcosystem *string `json:"packageEcosystem,omitempty"` + // path to the manifest file declaring the vulnerable dependency + ManifestPath *string `json:"manifestPath,omitempty"` + // scope of the dependency such as runtime or development + DependencyScope *string `json:"dependencyScope,omitempty"` // timestamp when the vulnerability was published PublishedAt *models.DateTime `json:"publishedAt,omitempty"` // timestamp when the vulnerability was discovered in the environment DiscoveredAt *models.DateTime `json:"discoveredAt,omitempty"` // timestamp when the source last updated the vulnerability SourceUpdatedAt *models.DateTime `json:"sourceUpdatedAt,omitempty"` + // timestamp when the vulnerability was dismissed + DismissedAt *models.DateTime `json:"dismissedAt,omitempty"` + // reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + DismissedReason *string `json:"dismissedReason,omitempty"` + // free-text explanation provided when the vulnerability was dismissed + DismissedComment *string `json:"dismissedComment,omitempty"` + // timestamp when the vulnerability was marked as fixed + FixedAt *models.DateTime `json:"fixedAt,omitempty"` + // timestamp when the vulnerability was automatically dismissed by the source system + AutoDismissedAt *models.DateTime `json:"autoDismissedAt,omitempty"` // link to the vulnerability in the source system ExternalURI *string `json:"externalURI,omitempty"` // raw metadata payload for the vulnerability from the source system @@ -45696,6 +46636,102 @@ type VulnerabilityWhereInput struct { ValidatedNeq *bool `json:"validatedNEQ,omitempty"` ValidatedIsNil *bool `json:"validatedIsNil,omitempty"` ValidatedNotNil *bool `json:"validatedNotNil,omitempty"` + // vulnerable_version_range field predicates + VulnerableVersionRange *string `json:"vulnerableVersionRange,omitempty"` + VulnerableVersionRangeNeq *string `json:"vulnerableVersionRangeNEQ,omitempty"` + VulnerableVersionRangeIn []string `json:"vulnerableVersionRangeIn,omitempty"` + VulnerableVersionRangeNotIn []string `json:"vulnerableVersionRangeNotIn,omitempty"` + VulnerableVersionRangeGt *string `json:"vulnerableVersionRangeGT,omitempty"` + VulnerableVersionRangeGte *string `json:"vulnerableVersionRangeGTE,omitempty"` + VulnerableVersionRangeLt *string `json:"vulnerableVersionRangeLT,omitempty"` + VulnerableVersionRangeLte *string `json:"vulnerableVersionRangeLTE,omitempty"` + VulnerableVersionRangeContains *string `json:"vulnerableVersionRangeContains,omitempty"` + VulnerableVersionRangeHasPrefix *string `json:"vulnerableVersionRangeHasPrefix,omitempty"` + VulnerableVersionRangeHasSuffix *string `json:"vulnerableVersionRangeHasSuffix,omitempty"` + VulnerableVersionRangeIsNil *bool `json:"vulnerableVersionRangeIsNil,omitempty"` + VulnerableVersionRangeNotNil *bool `json:"vulnerableVersionRangeNotNil,omitempty"` + VulnerableVersionRangeEqualFold *string `json:"vulnerableVersionRangeEqualFold,omitempty"` + VulnerableVersionRangeContainsFold *string `json:"vulnerableVersionRangeContainsFold,omitempty"` + // first_patched_version field predicates + FirstPatchedVersion *string `json:"firstPatchedVersion,omitempty"` + FirstPatchedVersionNeq *string `json:"firstPatchedVersionNEQ,omitempty"` + FirstPatchedVersionIn []string `json:"firstPatchedVersionIn,omitempty"` + FirstPatchedVersionNotIn []string `json:"firstPatchedVersionNotIn,omitempty"` + FirstPatchedVersionGt *string `json:"firstPatchedVersionGT,omitempty"` + FirstPatchedVersionGte *string `json:"firstPatchedVersionGTE,omitempty"` + FirstPatchedVersionLt *string `json:"firstPatchedVersionLT,omitempty"` + FirstPatchedVersionLte *string `json:"firstPatchedVersionLTE,omitempty"` + FirstPatchedVersionContains *string `json:"firstPatchedVersionContains,omitempty"` + FirstPatchedVersionHasPrefix *string `json:"firstPatchedVersionHasPrefix,omitempty"` + FirstPatchedVersionHasSuffix *string `json:"firstPatchedVersionHasSuffix,omitempty"` + FirstPatchedVersionIsNil *bool `json:"firstPatchedVersionIsNil,omitempty"` + FirstPatchedVersionNotNil *bool `json:"firstPatchedVersionNotNil,omitempty"` + FirstPatchedVersionEqualFold *string `json:"firstPatchedVersionEqualFold,omitempty"` + FirstPatchedVersionContainsFold *string `json:"firstPatchedVersionContainsFold,omitempty"` + // package_name field predicates + PackageName *string `json:"packageName,omitempty"` + PackageNameNeq *string `json:"packageNameNEQ,omitempty"` + PackageNameIn []string `json:"packageNameIn,omitempty"` + PackageNameNotIn []string `json:"packageNameNotIn,omitempty"` + PackageNameGt *string `json:"packageNameGT,omitempty"` + PackageNameGte *string `json:"packageNameGTE,omitempty"` + PackageNameLt *string `json:"packageNameLT,omitempty"` + PackageNameLte *string `json:"packageNameLTE,omitempty"` + PackageNameContains *string `json:"packageNameContains,omitempty"` + PackageNameHasPrefix *string `json:"packageNameHasPrefix,omitempty"` + PackageNameHasSuffix *string `json:"packageNameHasSuffix,omitempty"` + PackageNameIsNil *bool `json:"packageNameIsNil,omitempty"` + PackageNameNotNil *bool `json:"packageNameNotNil,omitempty"` + PackageNameEqualFold *string `json:"packageNameEqualFold,omitempty"` + PackageNameContainsFold *string `json:"packageNameContainsFold,omitempty"` + // package_ecosystem field predicates + PackageEcosystem *string `json:"packageEcosystem,omitempty"` + PackageEcosystemNeq *string `json:"packageEcosystemNEQ,omitempty"` + PackageEcosystemIn []string `json:"packageEcosystemIn,omitempty"` + PackageEcosystemNotIn []string `json:"packageEcosystemNotIn,omitempty"` + PackageEcosystemGt *string `json:"packageEcosystemGT,omitempty"` + PackageEcosystemGte *string `json:"packageEcosystemGTE,omitempty"` + PackageEcosystemLt *string `json:"packageEcosystemLT,omitempty"` + PackageEcosystemLte *string `json:"packageEcosystemLTE,omitempty"` + PackageEcosystemContains *string `json:"packageEcosystemContains,omitempty"` + PackageEcosystemHasPrefix *string `json:"packageEcosystemHasPrefix,omitempty"` + PackageEcosystemHasSuffix *string `json:"packageEcosystemHasSuffix,omitempty"` + PackageEcosystemIsNil *bool `json:"packageEcosystemIsNil,omitempty"` + PackageEcosystemNotNil *bool `json:"packageEcosystemNotNil,omitempty"` + PackageEcosystemEqualFold *string `json:"packageEcosystemEqualFold,omitempty"` + PackageEcosystemContainsFold *string `json:"packageEcosystemContainsFold,omitempty"` + // manifest_path field predicates + ManifestPath *string `json:"manifestPath,omitempty"` + ManifestPathNeq *string `json:"manifestPathNEQ,omitempty"` + ManifestPathIn []string `json:"manifestPathIn,omitempty"` + ManifestPathNotIn []string `json:"manifestPathNotIn,omitempty"` + ManifestPathGt *string `json:"manifestPathGT,omitempty"` + ManifestPathGte *string `json:"manifestPathGTE,omitempty"` + ManifestPathLt *string `json:"manifestPathLT,omitempty"` + ManifestPathLte *string `json:"manifestPathLTE,omitempty"` + ManifestPathContains *string `json:"manifestPathContains,omitempty"` + ManifestPathHasPrefix *string `json:"manifestPathHasPrefix,omitempty"` + ManifestPathHasSuffix *string `json:"manifestPathHasSuffix,omitempty"` + ManifestPathIsNil *bool `json:"manifestPathIsNil,omitempty"` + ManifestPathNotNil *bool `json:"manifestPathNotNil,omitempty"` + ManifestPathEqualFold *string `json:"manifestPathEqualFold,omitempty"` + ManifestPathContainsFold *string `json:"manifestPathContainsFold,omitempty"` + // dependency_scope field predicates + DependencyScope *string `json:"dependencyScope,omitempty"` + DependencyScopeNeq *string `json:"dependencyScopeNEQ,omitempty"` + DependencyScopeIn []string `json:"dependencyScopeIn,omitempty"` + DependencyScopeNotIn []string `json:"dependencyScopeNotIn,omitempty"` + DependencyScopeGt *string `json:"dependencyScopeGT,omitempty"` + DependencyScopeGte *string `json:"dependencyScopeGTE,omitempty"` + DependencyScopeLt *string `json:"dependencyScopeLT,omitempty"` + DependencyScopeLte *string `json:"dependencyScopeLTE,omitempty"` + DependencyScopeContains *string `json:"dependencyScopeContains,omitempty"` + DependencyScopeHasPrefix *string `json:"dependencyScopeHasPrefix,omitempty"` + DependencyScopeHasSuffix *string `json:"dependencyScopeHasSuffix,omitempty"` + DependencyScopeIsNil *bool `json:"dependencyScopeIsNil,omitempty"` + DependencyScopeNotNil *bool `json:"dependencyScopeNotNil,omitempty"` + DependencyScopeEqualFold *string `json:"dependencyScopeEqualFold,omitempty"` + DependencyScopeContainsFold *string `json:"dependencyScopeContainsFold,omitempty"` // published_at field predicates PublishedAt *models.DateTime `json:"publishedAt,omitempty"` PublishedAtNeq *models.DateTime `json:"publishedAtNEQ,omitempty"` @@ -45729,6 +46765,71 @@ type VulnerabilityWhereInput struct { SourceUpdatedAtLte *models.DateTime `json:"sourceUpdatedAtLTE,omitempty"` SourceUpdatedAtIsNil *bool `json:"sourceUpdatedAtIsNil,omitempty"` SourceUpdatedAtNotNil *bool `json:"sourceUpdatedAtNotNil,omitempty"` + // dismissed_at field predicates + DismissedAt *models.DateTime `json:"dismissedAt,omitempty"` + DismissedAtNeq *models.DateTime `json:"dismissedAtNEQ,omitempty"` + DismissedAtIn []*models.DateTime `json:"dismissedAtIn,omitempty"` + DismissedAtNotIn []*models.DateTime `json:"dismissedAtNotIn,omitempty"` + DismissedAtGt *models.DateTime `json:"dismissedAtGT,omitempty"` + DismissedAtGte *models.DateTime `json:"dismissedAtGTE,omitempty"` + DismissedAtLt *models.DateTime `json:"dismissedAtLT,omitempty"` + DismissedAtLte *models.DateTime `json:"dismissedAtLTE,omitempty"` + DismissedAtIsNil *bool `json:"dismissedAtIsNil,omitempty"` + DismissedAtNotNil *bool `json:"dismissedAtNotNil,omitempty"` + // dismissed_reason field predicates + DismissedReason *string `json:"dismissedReason,omitempty"` + DismissedReasonNeq *string `json:"dismissedReasonNEQ,omitempty"` + DismissedReasonIn []string `json:"dismissedReasonIn,omitempty"` + DismissedReasonNotIn []string `json:"dismissedReasonNotIn,omitempty"` + DismissedReasonGt *string `json:"dismissedReasonGT,omitempty"` + DismissedReasonGte *string `json:"dismissedReasonGTE,omitempty"` + DismissedReasonLt *string `json:"dismissedReasonLT,omitempty"` + DismissedReasonLte *string `json:"dismissedReasonLTE,omitempty"` + DismissedReasonContains *string `json:"dismissedReasonContains,omitempty"` + DismissedReasonHasPrefix *string `json:"dismissedReasonHasPrefix,omitempty"` + DismissedReasonHasSuffix *string `json:"dismissedReasonHasSuffix,omitempty"` + DismissedReasonIsNil *bool `json:"dismissedReasonIsNil,omitempty"` + DismissedReasonNotNil *bool `json:"dismissedReasonNotNil,omitempty"` + DismissedReasonEqualFold *string `json:"dismissedReasonEqualFold,omitempty"` + DismissedReasonContainsFold *string `json:"dismissedReasonContainsFold,omitempty"` + // dismissed_comment field predicates + DismissedComment *string `json:"dismissedComment,omitempty"` + DismissedCommentNeq *string `json:"dismissedCommentNEQ,omitempty"` + DismissedCommentIn []string `json:"dismissedCommentIn,omitempty"` + DismissedCommentNotIn []string `json:"dismissedCommentNotIn,omitempty"` + DismissedCommentGt *string `json:"dismissedCommentGT,omitempty"` + DismissedCommentGte *string `json:"dismissedCommentGTE,omitempty"` + DismissedCommentLt *string `json:"dismissedCommentLT,omitempty"` + DismissedCommentLte *string `json:"dismissedCommentLTE,omitempty"` + DismissedCommentContains *string `json:"dismissedCommentContains,omitempty"` + DismissedCommentHasPrefix *string `json:"dismissedCommentHasPrefix,omitempty"` + DismissedCommentHasSuffix *string `json:"dismissedCommentHasSuffix,omitempty"` + DismissedCommentIsNil *bool `json:"dismissedCommentIsNil,omitempty"` + DismissedCommentNotNil *bool `json:"dismissedCommentNotNil,omitempty"` + DismissedCommentEqualFold *string `json:"dismissedCommentEqualFold,omitempty"` + DismissedCommentContainsFold *string `json:"dismissedCommentContainsFold,omitempty"` + // fixed_at field predicates + FixedAt *models.DateTime `json:"fixedAt,omitempty"` + FixedAtNeq *models.DateTime `json:"fixedAtNEQ,omitempty"` + FixedAtIn []*models.DateTime `json:"fixedAtIn,omitempty"` + FixedAtNotIn []*models.DateTime `json:"fixedAtNotIn,omitempty"` + FixedAtGt *models.DateTime `json:"fixedAtGT,omitempty"` + FixedAtGte *models.DateTime `json:"fixedAtGTE,omitempty"` + FixedAtLt *models.DateTime `json:"fixedAtLT,omitempty"` + FixedAtLte *models.DateTime `json:"fixedAtLTE,omitempty"` + FixedAtIsNil *bool `json:"fixedAtIsNil,omitempty"` + FixedAtNotNil *bool `json:"fixedAtNotNil,omitempty"` + // auto_dismissed_at field predicates + AutoDismissedAt *models.DateTime `json:"autoDismissedAt,omitempty"` + AutoDismissedAtNeq *models.DateTime `json:"autoDismissedAtNEQ,omitempty"` + AutoDismissedAtIn []*models.DateTime `json:"autoDismissedAtIn,omitempty"` + AutoDismissedAtNotIn []*models.DateTime `json:"autoDismissedAtNotIn,omitempty"` + AutoDismissedAtGt *models.DateTime `json:"autoDismissedAtGT,omitempty"` + AutoDismissedAtGte *models.DateTime `json:"autoDismissedAtGTE,omitempty"` + AutoDismissedAtLt *models.DateTime `json:"autoDismissedAtLT,omitempty"` + AutoDismissedAtLte *models.DateTime `json:"autoDismissedAtLTE,omitempty"` + AutoDismissedAtIsNil *bool `json:"autoDismissedAtIsNil,omitempty"` + AutoDismissedAtNotNil *bool `json:"autoDismissedAtNotNil,omitempty"` // external_uri field predicates ExternalURI *string `json:"externalURI,omitempty"` ExternalURINeq *string `json:"externalURINEQ,omitempty"` @@ -45817,6 +46918,8 @@ type VulnerabilityWhereInput struct { ReferencesHas *string `json:"referencesHas,omitempty"` // Filter for impactsHas to contain a specific value ImpactsHas *string `json:"impactsHas,omitempty"` + // Filter for cweIdsHas to contain a specific value + CweIdsHas *string `json:"cweIdsHas,omitempty"` } type Webauthn struct { @@ -49770,6 +50873,7 @@ const ( EntityOrderFieldStatusPageURL EntityOrderField = "status_page_url" EntityOrderFieldRiskRating EntityOrderField = "risk_rating" EntityOrderFieldRiskScore EntityOrderField = "risk_score" + EntityOrderFieldRiskScoreCoverage EntityOrderField = "risk_score_coverage" EntityOrderFieldTier EntityOrderField = "tier" EntityOrderFieldReviewFrequency EntityOrderField = "REVIEW_FREQUENCY" EntityOrderFieldNextReviewAt EntityOrderField = "next_review_at" @@ -49804,6 +50908,7 @@ var AllEntityOrderField = []EntityOrderField{ EntityOrderFieldStatusPageURL, EntityOrderFieldRiskRating, EntityOrderFieldRiskScore, + EntityOrderFieldRiskScoreCoverage, EntityOrderFieldTier, EntityOrderFieldReviewFrequency, EntityOrderFieldNextReviewAt, @@ -49814,7 +50919,7 @@ var AllEntityOrderField = []EntityOrderField{ func (e EntityOrderField) IsValid() bool { switch e { - case EntityOrderFieldCreatedAt, EntityOrderFieldUpdatedAt, EntityOrderFieldInternalOwner, EntityOrderFieldReviewedBy, EntityOrderFieldLastReviewedAt, EntityOrderFieldName, EntityOrderFieldDisplayName, EntityOrderFieldStatus, EntityOrderFieldApprovedForUse, EntityOrderFieldHasSoc2, EntityOrderFieldSoc2PeriodEnd, EntityOrderFieldContractStartDate, EntityOrderFieldContractEndDate, EntityOrderFieldAutoRenews, EntityOrderFieldTerminationNoticeDays, EntityOrderFieldAnnualSpend, EntityOrderFieldSpendCurrency, EntityOrderFieldBillingModel, EntityOrderFieldRenewalRisk, EntityOrderFieldSsoEnforced, EntityOrderFieldMfaSupported, EntityOrderFieldMfaEnforced, EntityOrderFieldStatusPageURL, EntityOrderFieldRiskRating, EntityOrderFieldRiskScore, EntityOrderFieldTier, EntityOrderFieldReviewFrequency, EntityOrderFieldNextReviewAt, EntityOrderFieldContractRenewalAt, EntityOrderFieldExternalID, EntityOrderFieldObservedAt: + case EntityOrderFieldCreatedAt, EntityOrderFieldUpdatedAt, EntityOrderFieldInternalOwner, EntityOrderFieldReviewedBy, EntityOrderFieldLastReviewedAt, EntityOrderFieldName, EntityOrderFieldDisplayName, EntityOrderFieldStatus, EntityOrderFieldApprovedForUse, EntityOrderFieldHasSoc2, EntityOrderFieldSoc2PeriodEnd, EntityOrderFieldContractStartDate, EntityOrderFieldContractEndDate, EntityOrderFieldAutoRenews, EntityOrderFieldTerminationNoticeDays, EntityOrderFieldAnnualSpend, EntityOrderFieldSpendCurrency, EntityOrderFieldBillingModel, EntityOrderFieldRenewalRisk, EntityOrderFieldSsoEnforced, EntityOrderFieldMfaSupported, EntityOrderFieldMfaEnforced, EntityOrderFieldStatusPageURL, EntityOrderFieldRiskRating, EntityOrderFieldRiskScore, EntityOrderFieldRiskScoreCoverage, EntityOrderFieldTier, EntityOrderFieldReviewFrequency, EntityOrderFieldNextReviewAt, EntityOrderFieldContractRenewalAt, EntityOrderFieldExternalID, EntityOrderFieldObservedAt: return true } return false @@ -52236,6 +53341,7 @@ const ( RemediationOrderFieldExternalID RemediationOrderField = "external_id" RemediationOrderFieldExternalOwnerID RemediationOrderField = "external_owner_id" RemediationOrderFieldTitle RemediationOrderField = "title" + RemediationOrderFieldStatus RemediationOrderField = "status" RemediationOrderFieldState RemediationOrderField = "state" ) @@ -52245,12 +53351,13 @@ var AllRemediationOrderField = []RemediationOrderField{ RemediationOrderFieldExternalID, RemediationOrderFieldExternalOwnerID, RemediationOrderFieldTitle, + RemediationOrderFieldStatus, RemediationOrderFieldState, } func (e RemediationOrderField) IsValid() bool { switch e { - case RemediationOrderFieldCreatedAt, RemediationOrderFieldUpdatedAt, RemediationOrderFieldExternalID, RemediationOrderFieldExternalOwnerID, RemediationOrderFieldTitle, RemediationOrderFieldState: + case RemediationOrderFieldCreatedAt, RemediationOrderFieldUpdatedAt, RemediationOrderFieldExternalID, RemediationOrderFieldExternalOwnerID, RemediationOrderFieldTitle, RemediationOrderFieldStatus, RemediationOrderFieldState: return true } return false @@ -52359,16 +53466,23 @@ func (e ReviewOrderField) MarshalJSON() ([]byte, error) { type RiskOrderField string const ( - RiskOrderFieldCreatedAt RiskOrderField = "created_at" - RiskOrderFieldUpdatedAt RiskOrderField = "updated_at" - RiskOrderFieldExternalID RiskOrderField = "external_id" - RiskOrderFieldObservedAt RiskOrderField = "observed_at" - RiskOrderFieldName RiskOrderField = "name" - RiskOrderFieldStatus RiskOrderField = "STATUS" - RiskOrderFieldImpact RiskOrderField = "IMPACT" - RiskOrderFieldLikelihood RiskOrderField = "LIKELIHOOD" - RiskOrderFieldScore RiskOrderField = "score" - RiskOrderFieldBusinessCosts RiskOrderField = "business_costs" + RiskOrderFieldCreatedAt RiskOrderField = "created_at" + RiskOrderFieldUpdatedAt RiskOrderField = "updated_at" + RiskOrderFieldExternalID RiskOrderField = "external_id" + RiskOrderFieldObservedAt RiskOrderField = "observed_at" + RiskOrderFieldName RiskOrderField = "name" + RiskOrderFieldStatus RiskOrderField = "STATUS" + RiskOrderFieldImpact RiskOrderField = "IMPACT" + RiskOrderFieldLikelihood RiskOrderField = "LIKELIHOOD" + RiskOrderFieldScore RiskOrderField = "score" + RiskOrderFieldBusinessCosts RiskOrderField = "business_costs" + RiskOrderFieldMitigatedAt RiskOrderField = "mitigated_at" + RiskOrderFieldReviewRequired RiskOrderField = "review_required" + RiskOrderFieldLastReviewedAt RiskOrderField = "last_reviewed_at" + RiskOrderFieldReviewFrequency RiskOrderField = "review_frequency" + RiskOrderFieldNextReviewDueAt RiskOrderField = "next_review_due_at" + RiskOrderFieldResidualScore RiskOrderField = "residual_score" + RiskOrderFieldRiskDecision RiskOrderField = "risk_decision" ) var AllRiskOrderField = []RiskOrderField{ @@ -52382,11 +53496,18 @@ var AllRiskOrderField = []RiskOrderField{ RiskOrderFieldLikelihood, RiskOrderFieldScore, RiskOrderFieldBusinessCosts, + RiskOrderFieldMitigatedAt, + RiskOrderFieldReviewRequired, + RiskOrderFieldLastReviewedAt, + RiskOrderFieldReviewFrequency, + RiskOrderFieldNextReviewDueAt, + RiskOrderFieldResidualScore, + RiskOrderFieldRiskDecision, } func (e RiskOrderField) IsValid() bool { switch e { - case RiskOrderFieldCreatedAt, RiskOrderFieldUpdatedAt, RiskOrderFieldExternalID, RiskOrderFieldObservedAt, RiskOrderFieldName, RiskOrderFieldStatus, RiskOrderFieldImpact, RiskOrderFieldLikelihood, RiskOrderFieldScore, RiskOrderFieldBusinessCosts: + case RiskOrderFieldCreatedAt, RiskOrderFieldUpdatedAt, RiskOrderFieldExternalID, RiskOrderFieldObservedAt, RiskOrderFieldName, RiskOrderFieldStatus, RiskOrderFieldImpact, RiskOrderFieldLikelihood, RiskOrderFieldScore, RiskOrderFieldBusinessCosts, RiskOrderFieldMitigatedAt, RiskOrderFieldReviewRequired, RiskOrderFieldLastReviewedAt, RiskOrderFieldReviewFrequency, RiskOrderFieldNextReviewDueAt, RiskOrderFieldResidualScore, RiskOrderFieldRiskDecision: return true } return false @@ -53857,6 +54978,130 @@ func (e UserSettingOrderField) MarshalJSON() ([]byte, error) { return buf.Bytes(), nil } +// Properties by which VendorRiskScore connections can be ordered. +type VendorRiskScoreOrderField string + +const ( + VendorRiskScoreOrderFieldCreatedAt VendorRiskScoreOrderField = "created_at" + VendorRiskScoreOrderFieldUpdatedAt VendorRiskScoreOrderField = "updated_at" + VendorRiskScoreOrderFieldQuestionKey VendorRiskScoreOrderField = "question_key" + VendorRiskScoreOrderFieldQuestionCategory VendorRiskScoreOrderField = "question_category" + VendorRiskScoreOrderFieldImpact VendorRiskScoreOrderField = "impact" + VendorRiskScoreOrderFieldLikelihood VendorRiskScoreOrderField = "likelihood" + VendorRiskScoreOrderFieldScore VendorRiskScoreOrderField = "score" +) + +var AllVendorRiskScoreOrderField = []VendorRiskScoreOrderField{ + VendorRiskScoreOrderFieldCreatedAt, + VendorRiskScoreOrderFieldUpdatedAt, + VendorRiskScoreOrderFieldQuestionKey, + VendorRiskScoreOrderFieldQuestionCategory, + VendorRiskScoreOrderFieldImpact, + VendorRiskScoreOrderFieldLikelihood, + VendorRiskScoreOrderFieldScore, +} + +func (e VendorRiskScoreOrderField) IsValid() bool { + switch e { + case VendorRiskScoreOrderFieldCreatedAt, VendorRiskScoreOrderFieldUpdatedAt, VendorRiskScoreOrderFieldQuestionKey, VendorRiskScoreOrderFieldQuestionCategory, VendorRiskScoreOrderFieldImpact, VendorRiskScoreOrderFieldLikelihood, VendorRiskScoreOrderFieldScore: + return true + } + return false +} + +func (e VendorRiskScoreOrderField) String() string { + return string(e) +} + +func (e *VendorRiskScoreOrderField) UnmarshalGQL(v any) error { + str, ok := v.(string) + if !ok { + return fmt.Errorf("enums must be strings") + } + + *e = VendorRiskScoreOrderField(str) + if !e.IsValid() { + return fmt.Errorf("%s is not a valid VendorRiskScoreOrderField", str) + } + return nil +} + +func (e VendorRiskScoreOrderField) MarshalGQL(w io.Writer) { + fmt.Fprint(w, strconv.Quote(e.String())) +} + +func (e *VendorRiskScoreOrderField) UnmarshalJSON(b []byte) error { + s, err := strconv.Unquote(string(b)) + if err != nil { + return err + } + return e.UnmarshalGQL(s) +} + +func (e VendorRiskScoreOrderField) MarshalJSON() ([]byte, error) { + var buf bytes.Buffer + e.MarshalGQL(&buf) + return buf.Bytes(), nil +} + +// Properties by which VendorScoringConfig connections can be ordered. +type VendorScoringConfigOrderField string + +const ( + VendorScoringConfigOrderFieldCreatedAt VendorScoringConfigOrderField = "created_at" + VendorScoringConfigOrderFieldUpdatedAt VendorScoringConfigOrderField = "updated_at" + VendorScoringConfigOrderFieldScoringMode VendorScoringConfigOrderField = "scoring_mode" +) + +var AllVendorScoringConfigOrderField = []VendorScoringConfigOrderField{ + VendorScoringConfigOrderFieldCreatedAt, + VendorScoringConfigOrderFieldUpdatedAt, + VendorScoringConfigOrderFieldScoringMode, +} + +func (e VendorScoringConfigOrderField) IsValid() bool { + switch e { + case VendorScoringConfigOrderFieldCreatedAt, VendorScoringConfigOrderFieldUpdatedAt, VendorScoringConfigOrderFieldScoringMode: + return true + } + return false +} + +func (e VendorScoringConfigOrderField) String() string { + return string(e) +} + +func (e *VendorScoringConfigOrderField) UnmarshalGQL(v any) error { + str, ok := v.(string) + if !ok { + return fmt.Errorf("enums must be strings") + } + + *e = VendorScoringConfigOrderField(str) + if !e.IsValid() { + return fmt.Errorf("%s is not a valid VendorScoringConfigOrderField", str) + } + return nil +} + +func (e VendorScoringConfigOrderField) MarshalGQL(w io.Writer) { + fmt.Fprint(w, strconv.Quote(e.String())) +} + +func (e *VendorScoringConfigOrderField) UnmarshalJSON(b []byte) error { + s, err := strconv.Unquote(string(b)) + if err != nil { + return err + } + return e.UnmarshalGQL(s) +} + +func (e VendorScoringConfigOrderField) MarshalJSON() ([]byte, error) { + var buf bytes.Buffer + e.MarshalGQL(&buf) + return buf.Bytes(), nil +} + // Properties by which Vulnerability connections can be ordered. type VulnerabilityOrderField string diff --git a/integrations.go b/integrations.go new file mode 100644 index 0000000..3c33b53 --- /dev/null +++ b/integrations.go @@ -0,0 +1,88 @@ +package openlane + +import ( + "context" + "encoding/json" + + "github.com/theopenlane/httpsling" + "github.com/theopenlane/utils/rout" + + api "github.com/theopenlane/core/common/openapi" +) + +// IntegrationProvidersResponse is the response listing available integration definitions +type IntegrationProvidersResponse struct { + rout.Reply + // Providers is the list of available integration provider definitions + Providers json.RawMessage `json:"providers"` +} + +// ListIntegrationProviders returns declarative metadata about available third-party integration definitions +func (s *APIv1) ListIntegrationProviders(ctx context.Context) (out *IntegrationProvidersResponse, err error) { + resp, err := s.Requester.ReceiveWithContext(ctx, &out, + httpsling.Get(v1Path("integrations/providers"))) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + + if !httpsling.IsSuccess(resp) { + return nil, newRequestError(resp.StatusCode, out.Error) + } + + return out, nil +} + +// ConfigureIntegration stores non-OAuth credentials for a provider definition +func (s *APIv1) ConfigureIntegration(ctx context.Context, in *api.ConfigureIntegrationRequest) (out *api.ConfigureIntegrationResponse, err error) { + resp, err := s.Requester.ReceiveWithContext(ctx, &out, + httpsling.Post(v1Path("integrations/"+in.DefinitionID+"/config")), + httpsling.Body(in)) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + + if !httpsling.IsSuccess(resp) { + return nil, newRequestError(resp.StatusCode, out.Error) + } + + return out, nil +} + +// DisconnectIntegration executes the definition-driven teardown flow for an installed integration +func (s *APIv1) DisconnectIntegration(ctx context.Context, in *api.DisconnectIntegrationRequest) (out *api.DeleteIntegrationResponse, err error) { + resp, err := s.Requester.ReceiveWithContext(ctx, &out, + httpsling.Post(v1Path("integrations/"+in.IntegrationID+"/disconnect"))) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + + if !httpsling.IsSuccess(resp) { + return nil, newRequestError(resp.StatusCode, out.Error) + } + + return out, nil +} + +// RunIntegrationOperation executes or queues a provider operation against an installed integration +func (s *APIv1) RunIntegrationOperation(ctx context.Context, in *api.RunIntegrationOperationRequest) (out *api.RunIntegrationOperationResponse, err error) { + resp, err := s.Requester.ReceiveWithContext(ctx, &out, + httpsling.Post(v1Path("integrations/"+in.IntegrationID+"/operations/run")), + httpsling.Body(in.Body)) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + + if !httpsling.IsSuccess(resp) { + return nil, newRequestError(resp.StatusCode, out.Error) + } + + return out, nil +} diff --git a/query/integration.graphql b/query/integration.graphql index e5048c2..b446c7a 100644 --- a/query/integration.graphql +++ b/query/integration.graphql @@ -4,7 +4,7 @@ mutation DeleteIntegration($deleteIntegrationId: ID!) { } } -query GetAllIntegrations($first: Int, $last: Int, $after: Cursor, $before: Cursor, $orderBy: [IntegrationOrder!]){ +query GetAllIntegrations($first: Int, $last: Int, $after: Cursor, $before: Cursor, $orderBy: [IntegrationOrder!]) { integrations( first: $first last: $last @@ -23,11 +23,19 @@ query GetAllIntegrations($first: Int, $last: Int, $after: Cursor, $before: Curso node { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy @@ -40,11 +48,19 @@ query GetIntegrationByID($integrationId: ID!) { integration(id: $integrationId) { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy @@ -52,7 +68,7 @@ query GetIntegrationByID($integrationId: ID!) { } query GetIntegrations($first: Int, $last: Int, $after: Cursor, $before: Cursor, $where: IntegrationWhereInput, $orderBy: [IntegrationOrder!]) { -integrations( + integrations( first: $first last: $last after: $after @@ -71,11 +87,19 @@ integrations( node { createdAt createdBy + definitionID + definitionSlug + definitionVersion description + family id + integrationType kind + metadata name ownerID + providerMetadataSnapshot + status tags updatedAt updatedBy @@ -83,4 +107,3 @@ integrations( } } } - diff --git a/restclient.go b/restclient.go index 29c9755..8e4c71c 100644 --- a/restclient.go +++ b/restclient.go @@ -45,6 +45,14 @@ type RestClient interface { AccountFeatures(context.Context, *api.AccountFeaturesRequest) (*api.AccountFeaturesReply, error) // RegisterRunner registers a new job runner node with the server RegisterRunner(context.Context, *api.JobRunnerRegistrationRequest) (*api.JobRunnerRegistrationReply, error) + // ListIntegrationProviders lists available integration provider definitions + ListIntegrationProviders(context.Context) (*IntegrationProvidersResponse, error) + // ConfigureIntegration stores non-OAuth credentials for a provider definition + ConfigureIntegration(context.Context, *api.ConfigureIntegrationRequest) (*api.ConfigureIntegrationResponse, error) + // DisconnectIntegration executes the definition-driven teardown flow for an installed integration + DisconnectIntegration(context.Context, *api.DisconnectIntegrationRequest) (*api.DeleteIntegrationResponse, error) + // RunIntegrationOperation executes or queues a provider operation + RunIntegrationOperation(context.Context, *api.RunIntegrationOperationRequest) (*api.RunIntegrationOperationResponse, error) } // NewRestClient creates a new API v1 client that implements the Openlane Client interface diff --git a/schema/schema.graphql b/schema/schema.graphql index 8af0126..67e2cde 100644 --- a/schema/schema.graphql +++ b/schema/schema.graphql @@ -2229,6 +2229,37 @@ type AssessmentResponse implements Node { identityHolder: IdentityHolder entity: Entity document: DocumentData + vendorRiskScores( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorRiskScores returned from the connection. + """ + orderBy: [VendorRiskScoreOrder!] + + """ + Filtering options for VendorRiskScores returned from the connection. + """ + where: VendorRiskScoreWhereInput + ): VendorRiskScoreConnection! } """ AssessmentResponseAssessmentResponseStatus is enum for the field status @@ -2693,6 +2724,11 @@ input AssessmentResponseWhereInput { """ hasDocument: Boolean hasDocumentWith: [DocumentDataWhereInput!] + """ + vendor_risk_scores edge predicates + """ + hasVendorRiskScores: Boolean + hasVendorRiskScoresWith: [VendorRiskScoreWhereInput!] } """ Return response for updateAssessment mutation @@ -3511,6 +3547,7 @@ enum AssetAssetType @goModel(model: "github.com/theopenlane/core/common/enums.As DOMAIN DEVICE TELEPHONE + REPOSITORY } """ Return response for createBulkAsset mutation @@ -10994,6 +11031,7 @@ input CreateAssessmentResponseInput { identityHolderID: ID entityID: ID documentID: ID + vendorRiskScoreIDs: [ID!] } """ CreateAssetInput is used for create Asset object. @@ -11924,6 +11962,10 @@ input CreateDirectoryAccountInput { cursor or ETag supplied by the source system for auditing """ sourceVersion: String + """ + indicates this directory account originates from the installation designated as the primary directory source for its owner organization + """ + primarySource: Boolean ownerID: ID environmentID: ID scopeID: ID @@ -12515,9 +12557,9 @@ input CreateEntityInput { """ riskScore: Int """ - the tier classification for the entity + the vendor risk tier classification, used to determine the depth of TPRM assessment required """ - tier: String + tier: EntityVendorTier """ the cadence for reviewing the entity """ @@ -12563,6 +12605,7 @@ input CreateEntityInput { scanIDs: [ID!] campaignIDs: [ID!] assessmentResponseIDs: [ID!] + vendorRiskScoreIDs: [ID!] integrationIDs: [ID!] subprocessorIDs: [ID!] authMethodIDs: [ID!] @@ -14255,6 +14298,8 @@ input CreateOrganizationInput { directoryGroupIDs: [ID!] directorySyncRunIDs: [ID!] discussionIDs: [ID!] + vendorScoringConfigIDs: [ID!] + vendorRiskScoreIDs: [ID!] createOrgSettings: CreateOrganizationSettingInput } """ @@ -14544,6 +14589,9 @@ input CreatePlatformInput { entityIDs: [ID!] evidenceIDs: [ID!] fileIDs: [ID!] + architectureDiagramIDs: [ID!] + dataFlowDiagramIDs: [ID!] + trustBoundaryDiagramIDs: [ID!] riskIDs: [ID!] controlIDs: [ID!] assessmentIDs: [ID!] @@ -14835,6 +14883,10 @@ input CreateRemediationInput { """ title: String """ + status of the remediation, such as pending, in_progress, or completed + """ + status: RemediationRemediationStatus + """ state of the remediation, such as pending or completed """ state: String @@ -15121,6 +15173,31 @@ input CreateRiskInput { structured details of the business costs in JSON format """ businessCostsJSON: [Any!] + """ + the time when the risk was mitigated + """ + mitigatedAt: DateTime + """ + indicates if a periodic review is required for the risk + """ + reviewRequired: Boolean + """ + the time when the risk was last reviewed + """ + lastReviewedAt: DateTime + reviewFrequency: RiskFrequency + """ + the time when the next review is due for the risk + """ + nextReviewDueAt: DateTime + """ + score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + """ + residualScore: Int + """ + the decision made for the risk - accept, transfer, avoid, mitigate, or none + """ + riskDecision: RiskRiskDecision ownerID: ID blockedGroupIDs: [ID!] editorIDs: [ID!] @@ -15144,6 +15221,8 @@ input CreateRiskInput { delegateID: ID commentIDs: [ID!] discussionIDs: [ID!] + reviewIDs: [ID!] + remediationIDs: [ID!] } """ CreateSLADefinitionInput is used for create SLADefinition object. @@ -16385,6 +16464,76 @@ input CreateUserSettingInput { defaultOrgID: ID } """ +CreateVendorRiskScoreInput is used for create VendorRiskScore object. +Input was generated by ent. +""" +input CreateVendorRiskScoreInput { + """ + tags associated with the object + """ + tags: [String!] + """ + stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + """ + questionKey: String! + """ + question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + """ + questionName: String! + """ + question description captured at assessment time + """ + questionDescription: String + """ + question category captured at assessment time + """ + questionCategory: VendorRiskScoreVendorScoringCategory! + """ + user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + """ + impact: VendorRiskScoreVendorRiskImpact! + """ + user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + """ + likelihood: VendorRiskScoreVendorRiskLikelihood! + """ + factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + """ + answer: String + """ + optional justification or context for the assigned impact and likelihood + """ + notes: String + ownerID: ID + vendorScoringConfigID: ID + entityID: ID! + assessmentResponseID: ID +} +""" +CreateVendorScoringConfigInput is used for create VendorScoringConfig object. +Input was generated by ent. +""" +input CreateVendorScoringConfigInput { + """ + tags associated with the object + """ + tags: [String!] + """ + org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + """ + questions: VendorScoringQuestionsConfig + """ + controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + """ + scoringMode: VendorScoringConfigVendorScoringMode + """ + org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + """ + riskThresholds: RiskThresholdsConfig + ownerID: ID + vendorRiskScoreIDs: [ID!] +} +""" CreateVulnerabilityInput is used for create Vulnerability object. Input was generated by ent. """ @@ -16502,6 +16651,34 @@ input CreateVulnerabilityInput { """ impacts: [String!] """ + CWE identifiers associated with the vulnerability + """ + cweIds: [String!] + """ + version range affected by the vulnerability + """ + vulnerableVersionRange: String + """ + earliest version that fixes the vulnerability + """ + firstPatchedVersion: String + """ + name of the vulnerable package or dependency + """ + packageName: String + """ + ecosystem of the vulnerable package such as npm, pip, or maven + """ + packageEcosystem: String + """ + path to the manifest file declaring the vulnerable dependency + """ + manifestPath: String + """ + scope of the dependency such as runtime or development + """ + dependencyScope: String + """ timestamp when the vulnerability was published """ publishedAt: DateTime @@ -16514,6 +16691,26 @@ input CreateVulnerabilityInput { """ sourceUpdatedAt: DateTime """ + timestamp when the vulnerability was dismissed + """ + dismissedAt: DateTime + """ + reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + """ + dismissedReason: String + """ + free-text explanation provided when the vulnerability was dismissed + """ + dismissedComment: String + """ + timestamp when the vulnerability was marked as fixed + """ + fixedAt: DateTime + """ + timestamp when the vulnerability was automatically dismissed by the source system + """ + autoDismissedAt: DateTime + """ link to the vulnerability in the source system """ externalURI: String @@ -18453,6 +18650,10 @@ type DirectoryAccount implements Node { cursor or ETag supplied by the source system for auditing """ sourceVersion: String + """ + indicates this directory account originates from the installation designated as the primary directory source for its owner organization + """ + primarySource: Boolean! owner: Organization environment: CustomTypeEnum scope: CustomTypeEnum @@ -19377,6 +19578,11 @@ input DirectoryAccountWhereInput { sourceVersionEqualFold: String sourceVersionContainsFold: String """ + primary_source field predicates + """ + primarySource: Boolean + primarySourceNEQ: Boolean + """ owner edge predicates """ hasOwner: Boolean @@ -23946,9 +24152,13 @@ type Entity implements Node { """ riskScore: Int """ - the tier classification for the entity + number of scoring questions answered for the current risk score; used to contextualize partial assessments + """ + riskScoreCoverage: Int """ - tier: String + the vendor risk tier classification, used to determine the depth of TPRM assessment required + """ + tier: EntityVendorTier """ the cadence for reviewing the entity """ @@ -24328,6 +24538,37 @@ type Entity implements Node { """ where: AssessmentResponseWhereInput ): AssessmentResponseConnection! + vendorRiskScores( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorRiskScores returned from the connection. + """ + orderBy: [VendorRiskScoreOrder!] + + """ + Filtering options for VendorRiskScores returned from the connection. + """ + where: VendorRiskScoreWhereInput + ): VendorRiskScoreConnection! integrations( """ Returns the elements in the list that come after the specified cursor. @@ -24817,6 +25058,7 @@ enum EntityOrderField { status_page_url risk_rating risk_score + risk_score_coverage tier REVIEW_FREQUENCY next_review_at @@ -25181,6 +25423,15 @@ type EntityUpdatePayload { entity: Entity! } """ +EntityVendorTier is enum for the field tier +""" +enum EntityVendorTier @goModel(model: "github.com/theopenlane/core/common/enums.VendorTier") { + CRITICAL + HIGH + STANDARD + LOW +} +""" EntityWhereInput is used for filtering Entity objects. Input was generated by ent. """ @@ -25899,23 +26150,27 @@ input EntityWhereInput { riskScoreIsNil: Boolean riskScoreNotNil: Boolean """ + risk_score_coverage field predicates + """ + riskScoreCoverage: Int + riskScoreCoverageNEQ: Int + riskScoreCoverageIn: [Int!] + riskScoreCoverageNotIn: [Int!] + riskScoreCoverageGT: Int + riskScoreCoverageGTE: Int + riskScoreCoverageLT: Int + riskScoreCoverageLTE: Int + riskScoreCoverageIsNil: Boolean + riskScoreCoverageNotNil: Boolean + """ tier field predicates """ - tier: String - tierNEQ: String - tierIn: [String!] - tierNotIn: [String!] - tierGT: String - tierGTE: String - tierLT: String - tierLTE: String - tierContains: String - tierHasPrefix: String - tierHasSuffix: String + tier: EntityVendorTier + tierNEQ: EntityVendorTier + tierIn: [EntityVendorTier!] + tierNotIn: [EntityVendorTier!] tierIsNil: Boolean tierNotNil: Boolean - tierEqualFold: String - tierContainsFold: String """ review_frequency field predicates """ @@ -26106,6 +26361,11 @@ input EntityWhereInput { hasAssessmentResponses: Boolean hasAssessmentResponsesWith: [AssessmentResponseWhereInput!] """ + vendor_risk_scores edge predicates + """ + hasVendorRiskScores: Boolean + hasVendorRiskScoresWith: [VendorRiskScoreWhereInput!] + """ integrations edge predicates """ hasIntegrations: Boolean @@ -28102,6 +28362,8 @@ enum ExportExportType @goModel(model: "github.com/theopenlane/core/common/enums. TASK TRUST_CENTER_FAQ TRUST_CENTER_SUBPROCESSOR + VENDOR_RISK_SCORE + VENDOR_SCORING_CONFIG VULNERABILITY } """ @@ -36392,6 +36654,10 @@ type Integration implements Node { snapshot of definition metadata captured on the installation """ providerMetadataSnapshot: Map + """ + designates this integration as the authoritative directory source for identity holder enrichment and lifecycle derivation within its owner organization + """ + primaryDirectory: Boolean! owner: Organization environment: CustomTypeEnum scope: CustomTypeEnum @@ -37371,6 +37637,11 @@ input IntegrationWhereInput { statusIn: [IntegrationIntegrationStatus!] statusNotIn: [IntegrationIntegrationStatus!] """ + primary_directory field predicates + """ + primaryDirectory: Boolean + primaryDirectoryNEQ: Boolean + """ owner edge predicates """ hasOwner: Boolean @@ -45855,7 +46126,7 @@ type Mutation { values of the platform """ input: CreatePlatformInput! - ): PlatformCreatePayload! + architectureDiagrams: [Upload!], dataFlowDiagrams: [Upload!], trustBoundaryDiagrams: [Upload!]): PlatformCreatePayload! """ Create multiple new platforms """ @@ -45887,7 +46158,7 @@ type Mutation { New values for the platform """ input: UpdatePlatformInput! - ): PlatformUpdatePayload! + architectureDiagrams: [Upload!], dataFlowDiagrams: [Upload!], trustBoundaryDiagrams: [Upload!]): PlatformUpdatePayload! """ Delete an existing platform """ @@ -48049,6 +48320,170 @@ type Mutation { input: Upload! ): UserSettingBulkUpdatePayload! """ + Create a new vendorRiskScore + """ + createVendorRiskScore( + """ + values of the vendorRiskScore + """ + input: CreateVendorRiskScoreInput! + ): VendorRiskScoreCreatePayload! + """ + Create multiple new vendorRiskScores + """ + createBulkVendorRiskScore( + """ + values of the vendorRiskScore + """ + input: [CreateVendorRiskScoreInput!] + ): VendorRiskScoreBulkCreatePayload! + """ + Create multiple new vendorRiskScores via file upload + """ + createBulkCSVVendorRiskScore( + """ + csv file containing values of the vendorRiskScore + """ + input: Upload! + ): VendorRiskScoreBulkCreatePayload! + """ + Update multiple existing vendorRiskScores + """ + updateBulkVendorRiskScore( + """ + IDs of the vendorRiskScores to update + """ + ids: [ID!]! + + """ + values to update the vendorRiskScores with + """ + input: UpdateVendorRiskScoreInput! + ): VendorRiskScoreBulkUpdatePayload! + """ + Update multiple existing vendorRiskScores via file upload + """ + updateBulkCSVVendorRiskScore( + """ + csv file containing values of the vendorRiskScore, must include ID column + """ + input: Upload! + ): VendorRiskScoreBulkUpdatePayload! + """ + Update an existing vendorRiskScore + """ + updateVendorRiskScore( + """ + ID of the vendorRiskScore + """ + id: ID! + + """ + New values for the vendorRiskScore + """ + input: UpdateVendorRiskScoreInput! + ): VendorRiskScoreUpdatePayload! + """ + Delete an existing vendorRiskScore + """ + deleteVendorRiskScore( + """ + ID of the vendorRiskScore + """ + id: ID! + ): VendorRiskScoreDeletePayload! + """ + Delete multiple vendorRiskScores + """ + deleteBulkVendorRiskScore( + """ + IDs of the vendorRiskScores to delete + """ + ids: [ID!]! + ): VendorRiskScoreBulkDeletePayload! + """ + Create a new vendorScoringConfig + """ + createVendorScoringConfig( + """ + values of the vendorScoringConfig + """ + input: CreateVendorScoringConfigInput! + ): VendorScoringConfigCreatePayload! + """ + Create multiple new vendorScoringConfigs + """ + createBulkVendorScoringConfig( + """ + values of the vendorScoringConfig + """ + input: [CreateVendorScoringConfigInput!] + ): VendorScoringConfigBulkCreatePayload! + """ + Create multiple new vendorScoringConfigs via file upload + """ + createBulkCSVVendorScoringConfig( + """ + csv file containing values of the vendorScoringConfig + """ + input: Upload! + ): VendorScoringConfigBulkCreatePayload! + """ + Update multiple existing vendorScoringConfigs + """ + updateBulkVendorScoringConfig( + """ + IDs of the vendorScoringConfigs to update + """ + ids: [ID!]! + + """ + values to update the vendorScoringConfigs with + """ + input: UpdateVendorScoringConfigInput! + ): VendorScoringConfigBulkUpdatePayload! + """ + Update multiple existing vendorScoringConfigs via file upload + """ + updateBulkCSVVendorScoringConfig( + """ + csv file containing values of the vendorScoringConfig, must include ID column + """ + input: Upload! + ): VendorScoringConfigBulkUpdatePayload! + """ + Update an existing vendorScoringConfig + """ + updateVendorScoringConfig( + """ + ID of the vendorScoringConfig + """ + id: ID! + + """ + New values for the vendorScoringConfig + """ + input: UpdateVendorScoringConfigInput! + ): VendorScoringConfigUpdatePayload! + """ + Delete an existing vendorScoringConfig + """ + deleteVendorScoringConfig( + """ + ID of the vendorScoringConfig + """ + id: ID! + ): VendorScoringConfigDeletePayload! + """ + Delete multiple vendorScoringConfigs + """ + deleteBulkVendorScoringConfig( + """ + IDs of the vendorScoringConfigs to delete + """ + ids: [ID!]! + ): VendorScoringConfigBulkDeletePayload! + """ Create a new vulnerability """ createVulnerability( @@ -54609,6 +55044,68 @@ type Organization implements Node { """ where: DiscussionWhereInput ): DiscussionConnection! + vendorScoringConfigs( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorScoringConfigs returned from the connection. + """ + orderBy: [VendorScoringConfigOrder!] + + """ + Filtering options for VendorScoringConfigs returned from the connection. + """ + where: VendorScoringConfigWhereInput + ): VendorScoringConfigConnection! + vendorRiskScores( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorRiskScores returned from the connection. + """ + orderBy: [VendorRiskScoreOrder!] + + """ + Filtering options for VendorRiskScores returned from the connection. + """ + where: VendorRiskScoreWhereInput + ): VendorRiskScoreConnection! members( """ Returns the elements in the list that come after the specified cursor. @@ -56098,6 +56595,16 @@ input OrganizationWhereInput { hasDiscussions: Boolean hasDiscussionsWith: [DiscussionWhereInput!] """ + vendor_scoring_configs edge predicates + """ + hasVendorScoringConfigs: Boolean + hasVendorScoringConfigsWith: [VendorScoringConfigWhereInput!] + """ + vendor_risk_scores edge predicates + """ + hasVendorRiskScores: Boolean + hasVendorRiskScoresWith: [VendorRiskScoreWhereInput!] + """ members edge predicates """ hasMembers: Boolean @@ -56986,6 +57493,99 @@ type Platform implements Node { """ where: FileWhereInput ): FileConnection! + architectureDiagrams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Files returned from the connection. + """ + orderBy: [FileOrder!] + + """ + Filtering options for Files returned from the connection. + """ + where: FileWhereInput + ): FileConnection! + dataFlowDiagrams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Files returned from the connection. + """ + orderBy: [FileOrder!] + + """ + Filtering options for Files returned from the connection. + """ + where: FileWhereInput + ): FileConnection! + trustBoundaryDiagrams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Files returned from the connection. + """ + orderBy: [FileOrder!] + + """ + Filtering options for Files returned from the connection. + """ + where: FileWhereInput + ): FileConnection! risks( """ Returns the elements in the list that come after the specified cursor. @@ -58656,6 +59256,21 @@ input PlatformWhereInput { hasFiles: Boolean hasFilesWith: [FileWhereInput!] """ + architecture_diagrams edge predicates + """ + hasArchitectureDiagrams: Boolean + hasArchitectureDiagramsWith: [FileWhereInput!] + """ + data_flow_diagrams edge predicates + """ + hasDataFlowDiagrams: Boolean + hasDataFlowDiagramsWith: [FileWhereInput!] + """ + trust_boundary_diagrams edge predicates + """ + hasTrustBoundaryDiagrams: Boolean + hasTrustBoundaryDiagramsWith: [FileWhereInput!] + """ risks edge predicates """ hasRisks: Boolean @@ -64057,6 +64672,68 @@ type Query { """ where: UserSettingWhereInput ): UserSettingConnection! + vendorRiskScores( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorRiskScores returned from the connection. + """ + orderBy: [VendorRiskScoreOrder!] + + """ + Filtering options for VendorRiskScores returned from the connection. + """ + where: VendorRiskScoreWhereInput + ): VendorRiskScoreConnection! + vendorScoringConfigs( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorScoringConfigs returned from the connection. + """ + orderBy: [VendorScoringConfigOrder!] + + """ + Filtering options for VendorScoringConfigs returned from the connection. + """ + where: VendorScoringConfigWhereInput + ): VendorScoringConfigConnection! vulnerabilities( """ Returns the elements in the list that come after the specified cursor. @@ -66401,6 +67078,24 @@ type Query { id: ID! ): UserSetting! """ + Look up vendorRiskScore by ID + """ + vendorRiskScore( + """ + ID of the vendorRiskScore + """ + id: ID! + ): VendorRiskScore! + """ + Look up vendorScoringConfig by ID + """ + vendorScoringConfig( + """ + ID of the vendorScoringConfig + """ + id: ID! + ): VendorScoringConfig! + """ Look up vulnerability by ID """ vulnerability( @@ -66659,6 +67354,10 @@ type Remediation implements Node { """ title: String """ + status of the remediation, such as pending, in_progress, or completed + """ + status: RemediationRemediationStatus + """ state of the remediation, such as pending or completed """ state: String @@ -67385,9 +68084,20 @@ enum RemediationOrderField { external_id external_owner_id title + status state } """ +RemediationRemediationStatus is enum for the field status +""" +enum RemediationRemediationStatus @goModel(model: "github.com/theopenlane/core/common/enums.RemediationStatus") { + OPEN + IN_PROGRESS + IN_REVIEW + COMPLETED + WONT_DO +} +""" Return response for updateRemediation mutation """ type RemediationUpdatePayload { @@ -67683,6 +68393,15 @@ input RemediationWhereInput { titleEqualFold: String titleContainsFold: String """ + status field predicates + """ + status: RemediationRemediationStatus + statusNEQ: RemediationRemediationStatus + statusIn: [RemediationRemediationStatus!] + statusNotIn: [RemediationRemediationStatus!] + statusIsNil: Boolean + statusNotNil: Boolean + """ state field predicates """ state: String @@ -69594,6 +70313,31 @@ type Risk implements Node { the id of the group responsible for risk oversight on behalf of the stakeholder """ delegateID: ID + """ + the time when the risk was mitigated + """ + mitigatedAt: DateTime + """ + indicates if a periodic review is required for the risk + """ + reviewRequired: Boolean + """ + the time when the risk was last reviewed + """ + lastReviewedAt: DateTime + reviewFrequency: RiskFrequency + """ + the time when the next review is due for the risk + """ + nextReviewDueAt: DateTime + """ + score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + """ + residualScore: Int + """ + the decision made for the risk - accept, transfer, avoid, mitigate, or none + """ + riskDecision: RiskRiskDecision owner: Organization blockedGroups( """ @@ -70103,6 +70847,68 @@ type Risk implements Node { """ where: DiscussionWhereInput ): DiscussionConnection! + reviews( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Reviews returned from the connection. + """ + orderBy: [ReviewOrder!] + + """ + Filtering options for Reviews returned from the connection. + """ + where: ReviewWhereInput + ): ReviewConnection! + remediations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Remediations returned from the connection. + """ + orderBy: [RemediationOrder!] + + """ + Filtering options for Remediations returned from the connection. + """ + where: RemediationWhereInput + ): RemediationConnection! } """ Return response for createBulkRisk mutation @@ -70184,6 +70990,16 @@ type RiskEdge { cursor: Cursor! } """ +RiskFrequency is enum for the field review_frequency +""" +enum RiskFrequency @goModel(model: "github.com/theopenlane/core/common/enums.Frequency") { + YEARLY + QUARTERLY + BIANNUALLY + MONTHLY + NONE +} +""" Ordering options for Risk connections """ input RiskOrder { @@ -70210,6 +71026,23 @@ enum RiskOrderField { LIKELIHOOD score business_costs + mitigated_at + review_required + last_reviewed_at + review_frequency + next_review_due_at + residual_score + risk_decision +} +""" +RiskRiskDecision is enum for the field risk_decision +""" +enum RiskRiskDecision @goModel(model: "github.com/theopenlane/core/common/enums.RiskDecision") { + AVOID + MITIGATE + ACCEPT + TRANSFER + NONE } """ RiskRiskImpact is enum for the field impact @@ -70243,6 +71076,10 @@ enum RiskRiskStatus @goModel(model: "github.com/theopenlane/core/common/enums.Ri ARCHIVED } """ +RiskThresholdsConfig holds org-custom threshold overrides for vendor risk levels +""" +scalar RiskThresholdsConfig +""" Return response for updateRisk mutation """ type RiskUpdatePayload { @@ -70726,6 +71563,83 @@ input RiskWhereInput { delegateIDEqualFold: ID delegateIDContainsFold: ID """ + mitigated_at field predicates + """ + mitigatedAt: DateTime + mitigatedAtNEQ: DateTime + mitigatedAtIn: [DateTime!] + mitigatedAtNotIn: [DateTime!] + mitigatedAtGT: DateTime + mitigatedAtGTE: DateTime + mitigatedAtLT: DateTime + mitigatedAtLTE: DateTime + mitigatedAtIsNil: Boolean + mitigatedAtNotNil: Boolean + """ + review_required field predicates + """ + reviewRequired: Boolean + reviewRequiredNEQ: Boolean + reviewRequiredIsNil: Boolean + reviewRequiredNotNil: Boolean + """ + last_reviewed_at field predicates + """ + lastReviewedAt: DateTime + lastReviewedAtNEQ: DateTime + lastReviewedAtIn: [DateTime!] + lastReviewedAtNotIn: [DateTime!] + lastReviewedAtGT: DateTime + lastReviewedAtGTE: DateTime + lastReviewedAtLT: DateTime + lastReviewedAtLTE: DateTime + lastReviewedAtIsNil: Boolean + lastReviewedAtNotNil: Boolean + """ + review_frequency field predicates + """ + reviewFrequency: RiskFrequency + reviewFrequencyNEQ: RiskFrequency + reviewFrequencyIn: [RiskFrequency!] + reviewFrequencyNotIn: [RiskFrequency!] + reviewFrequencyIsNil: Boolean + reviewFrequencyNotNil: Boolean + """ + next_review_due_at field predicates + """ + nextReviewDueAt: DateTime + nextReviewDueAtNEQ: DateTime + nextReviewDueAtIn: [DateTime!] + nextReviewDueAtNotIn: [DateTime!] + nextReviewDueAtGT: DateTime + nextReviewDueAtGTE: DateTime + nextReviewDueAtLT: DateTime + nextReviewDueAtLTE: DateTime + nextReviewDueAtIsNil: Boolean + nextReviewDueAtNotNil: Boolean + """ + residual_score field predicates + """ + residualScore: Int + residualScoreNEQ: Int + residualScoreIn: [Int!] + residualScoreNotIn: [Int!] + residualScoreGT: Int + residualScoreGTE: Int + residualScoreLT: Int + residualScoreLTE: Int + residualScoreIsNil: Boolean + residualScoreNotNil: Boolean + """ + risk_decision field predicates + """ + riskDecision: RiskRiskDecision + riskDecisionNEQ: RiskRiskDecision + riskDecisionIn: [RiskRiskDecision!] + riskDecisionNotIn: [RiskRiskDecision!] + riskDecisionIsNil: Boolean + riskDecisionNotNil: Boolean + """ owner edge predicates """ hasOwner: Boolean @@ -70841,6 +71755,16 @@ input RiskWhereInput { hasDiscussions: Boolean hasDiscussionsWith: [DiscussionWhereInput!] """ + reviews edge predicates + """ + hasReviews: Boolean + hasReviewsWith: [ReviewWhereInput!] + """ + remediations edge predicates + """ + hasRemediations: Boolean + hasRemediationsWith: [RemediationWhereInput!] + """ Filter for tagsHas to contain a specific value """ tagsHas: String @@ -85656,6 +86580,10 @@ input UpdateDirectoryAccountInput { """ sourceVersion: String clearSourceVersion: Boolean + """ + indicates this directory account originates from the installation designated as the primary directory source for its owner organization + """ + primarySource: Boolean ownerID: ID clearOwner: Boolean environmentID: ID @@ -86407,9 +87335,9 @@ input UpdateEntityInput { riskScore: Int clearRiskScore: Boolean """ - the tier classification for the entity + the vendor risk tier classification, used to determine the depth of TPRM assessment required """ - tier: String + tier: EntityVendorTier clearTier: Boolean """ the cadence for reviewing the entity @@ -86492,6 +87420,9 @@ input UpdateEntityInput { addAssessmentResponseIDs: [ID!] removeAssessmentResponseIDs: [ID!] clearAssessmentResponses: Boolean + addVendorRiskScoreIDs: [ID!] + removeVendorRiskScoreIDs: [ID!] + clearVendorRiskScores: Boolean addIntegrationIDs: [ID!] removeIntegrationIDs: [ID!] clearIntegrations: Boolean @@ -88906,6 +89837,12 @@ input UpdateOrganizationInput { addDiscussionIDs: [ID!] removeDiscussionIDs: [ID!] clearDiscussions: Boolean + addVendorScoringConfigIDs: [ID!] + removeVendorScoringConfigIDs: [ID!] + clearVendorScoringConfigs: Boolean + addVendorRiskScoreIDs: [ID!] + removeVendorRiskScoreIDs: [ID!] + clearVendorRiskScores: Boolean addOrgMembers: [CreateOrgMembershipInput!] removeOrgMembers: [ID!] updateOrgSettings: UpdateOrganizationSettingInput @@ -89295,6 +90232,15 @@ input UpdatePlatformInput { addFileIDs: [ID!] removeFileIDs: [ID!] clearFiles: Boolean + addArchitectureDiagramIDs: [ID!] + removeArchitectureDiagramIDs: [ID!] + clearArchitectureDiagrams: Boolean + addDataFlowDiagramIDs: [ID!] + removeDataFlowDiagramIDs: [ID!] + clearDataFlowDiagrams: Boolean + addTrustBoundaryDiagramIDs: [ID!] + removeTrustBoundaryDiagramIDs: [ID!] + clearTrustBoundaryDiagrams: Boolean addRiskIDs: [ID!] removeRiskIDs: [ID!] clearRisks: Boolean @@ -89716,6 +90662,11 @@ input UpdateRemediationInput { title: String clearTitle: Boolean """ + status of the remediation, such as pending, in_progress, or completed + """ + status: RemediationRemediationStatus + clearStatus: Boolean + """ state of the remediation, such as pending or completed """ state: String @@ -90138,6 +91089,38 @@ input UpdateRiskInput { businessCostsJSON: [Any!] appendBusinessCostsJSON: [Any!] clearBusinessCostsJSON: Boolean + """ + the time when the risk was mitigated + """ + mitigatedAt: DateTime + clearMitigatedAt: Boolean + """ + indicates if a periodic review is required for the risk + """ + reviewRequired: Boolean + clearReviewRequired: Boolean + """ + the time when the risk was last reviewed + """ + lastReviewedAt: DateTime + clearLastReviewedAt: Boolean + reviewFrequency: RiskFrequency + clearReviewFrequency: Boolean + """ + the time when the next review is due for the risk + """ + nextReviewDueAt: DateTime + clearNextReviewDueAt: Boolean + """ + score of the residual risk based on impact and likelihood (1-4 unlikely, 5-9 likely, 10-16 highly likely, 17-20 critical) + """ + residualScore: Int + clearResidualScore: Boolean + """ + the decision made for the risk - accept, transfer, avoid, mitigate, or none + """ + riskDecision: RiskRiskDecision + clearRiskDecision: Boolean addBlockedGroupIDs: [ID!] removeBlockedGroupIDs: [ID!] clearBlockedGroups: Boolean @@ -90198,6 +91181,12 @@ input UpdateRiskInput { addDiscussionIDs: [ID!] removeDiscussionIDs: [ID!] clearDiscussions: Boolean + addReviewIDs: [ID!] + removeReviewIDs: [ID!] + clearReviews: Boolean + addRemediationIDs: [ID!] + removeRemediationIDs: [ID!] + clearRemediations: Boolean addDiscussion: CreateDiscussionInput updateDiscussion: UpdateDiscussionsInput deleteDiscussion: ID @@ -91843,6 +92832,87 @@ input UpdateUserSettingInput { clearDefaultOrg: Boolean } """ +UpdateVendorRiskScoreInput is used for update VendorRiskScore object. +Input was generated by ent. +""" +input UpdateVendorRiskScoreInput { + """ + tags associated with the object + """ + tags: [String!] + appendTags: [String!] + clearTags: Boolean + """ + stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + """ + questionKey: String + """ + question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + """ + questionName: String + """ + question description captured at assessment time + """ + questionDescription: String + clearQuestionDescription: Boolean + """ + question category captured at assessment time + """ + questionCategory: VendorRiskScoreVendorScoringCategory + """ + user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + """ + impact: VendorRiskScoreVendorRiskImpact + """ + user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + """ + likelihood: VendorRiskScoreVendorRiskLikelihood + """ + factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + """ + answer: String + clearAnswer: Boolean + """ + optional justification or context for the assigned impact and likelihood + """ + notes: String + clearNotes: Boolean + vendorScoringConfigID: ID + clearVendorScoringConfig: Boolean + entityID: ID + assessmentResponseID: ID + clearAssessmentResponse: Boolean +} +""" +UpdateVendorScoringConfigInput is used for update VendorScoringConfig object. +Input was generated by ent. +""" +input UpdateVendorScoringConfigInput { + """ + tags associated with the object + """ + tags: [String!] + appendTags: [String!] + clearTags: Boolean + """ + org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + """ + questions: VendorScoringQuestionsConfig + """ + controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + """ + scoringMode: VendorScoringConfigVendorScoringMode + """ + org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + """ + riskThresholds: RiskThresholdsConfig + ownerID: ID + clearOwner: Boolean + addVendorRiskScoreIDs: [ID!] + removeVendorRiskScoreIDs: [ID!] + clearVendorRiskScores: Boolean +} +""" UpdateVulnerabilityInput is used for update Vulnerability object. Input was generated by ent. """ @@ -91990,6 +93060,42 @@ input UpdateVulnerabilityInput { appendImpacts: [String!] clearImpacts: Boolean """ + CWE identifiers associated with the vulnerability + """ + cweIds: [String!] + appendCweIds: [String!] + clearCweIds: Boolean + """ + version range affected by the vulnerability + """ + vulnerableVersionRange: String + clearVulnerableVersionRange: Boolean + """ + earliest version that fixes the vulnerability + """ + firstPatchedVersion: String + clearFirstPatchedVersion: Boolean + """ + name of the vulnerable package or dependency + """ + packageName: String + clearPackageName: Boolean + """ + ecosystem of the vulnerable package such as npm, pip, or maven + """ + packageEcosystem: String + clearPackageEcosystem: Boolean + """ + path to the manifest file declaring the vulnerable dependency + """ + manifestPath: String + clearManifestPath: Boolean + """ + scope of the dependency such as runtime or development + """ + dependencyScope: String + clearDependencyScope: Boolean + """ timestamp when the vulnerability was published """ publishedAt: DateTime @@ -92005,6 +93111,31 @@ input UpdateVulnerabilityInput { sourceUpdatedAt: DateTime clearSourceUpdatedAt: Boolean """ + timestamp when the vulnerability was dismissed + """ + dismissedAt: DateTime + clearDismissedAt: Boolean + """ + reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + """ + dismissedReason: String + clearDismissedReason: Boolean + """ + free-text explanation provided when the vulnerability was dismissed + """ + dismissedComment: String + clearDismissedComment: Boolean + """ + timestamp when the vulnerability was marked as fixed + """ + fixedAt: DateTime + clearFixedAt: Boolean + """ + timestamp when the vulnerability was automatically dismissed by the source system + """ + autoDismissedAt: DateTime + clearAutoDismissedAt: Boolean + """ link to the vulnerability in the source system """ externalURI: String @@ -93804,6 +94935,839 @@ input UserWhereInput { """ tagsHas: String } +type VendorRiskScore implements Node { + id: ID! + createdAt: Time + updatedAt: Time + createdBy: String + updatedBy: String + """ + tags associated with the object + """ + tags: [String!] + """ + the ID of the organization owner of the object + """ + ownerID: ID + """ + stable key referencing a VendorScoringQuestionDef; used for grouping across vendors and resolving the current question definition + """ + questionKey: String! + """ + question text as it existed when this assessment was created; preserved for historical accuracy if the question wording changes later + """ + questionName: String! + """ + question description captured at assessment time + """ + questionDescription: String + """ + question category captured at assessment time + """ + questionCategory: VendorRiskScoreVendorScoringCategory! + """ + expected answer format captured at assessment time + """ + answerType: VendorRiskScoreVendorScoringAnswerType! + """ + user-assigned impact for this specific vendor using the 5-point TPRM scale (VERY_LOW=1 through CRITICAL=5); the same question may carry different impact across vendors + """ + impact: VendorRiskScoreVendorRiskImpact! + """ + user-assigned likelihood of the risk condition occurring for this vendor using the 5-point TPRM scale (VERY_LOW=0.5 through VERY_HIGH=4) + """ + likelihood: VendorRiskScoreVendorRiskLikelihood! + """ + hook-computed risk score: impactNumeric x likelihoodNumeric + """ + score: Float! + """ + factual answer to the question (e.g. 'true', 'false', '48 hours', 'ISO 27001'); retained permanently even if the question text changes, because question_key is the stable reference not the display name + """ + answer: String + """ + optional justification or context for the assigned impact and likelihood + """ + notes: String + """ + the scoring config this assessment belongs to; auto-resolved from org context if not provided + """ + vendorScoringConfigID: ID + """ + the vendor entity being assessed + """ + entityID: ID! + """ + the assessment response this score belongs to; scopes scores to a specific assessment cycle + """ + assessmentResponseID: ID + owner: Organization + vendorScoringConfig: VendorScoringConfig + entity: Entity! + assessmentResponse: AssessmentResponse +} +""" +Return response for createBulkVendorRiskScore mutation +""" +type VendorRiskScoreBulkCreatePayload { + """ + Created vendorRiskScores + """ + vendorRiskScores: [VendorRiskScore!] +} +""" +Return response for deleteBulkVendorRiskScore mutation +""" +type VendorRiskScoreBulkDeletePayload { + """ + Deleted vendorRiskScore IDs + """ + deletedIDs: [ID!]! +} +""" +Return response for updateBulkVendorRiskScore mutation +""" +type VendorRiskScoreBulkUpdatePayload { + """ + Updated vendorRiskScores + """ + vendorRiskScores: [VendorRiskScore!] + """ + IDs of the updated vendorRiskScores + """ + updatedIDs: [ID!] +} +""" +A connection to a list of items. +""" +type VendorRiskScoreConnection { + """ + A list of edges. + """ + edges: [VendorRiskScoreEdge] + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} +""" +Return response for createVendorRiskScore mutation +""" +type VendorRiskScoreCreatePayload { + """ + Created vendorRiskScore + """ + vendorRiskScore: VendorRiskScore! +} +""" +Return response for deleteVendorRiskScore mutation +""" +type VendorRiskScoreDeletePayload { + """ + Deleted vendorRiskScore ID + """ + deletedID: ID! +} +""" +An edge in a connection. +""" +type VendorRiskScoreEdge { + """ + The item at the end of the edge. + """ + node: VendorRiskScore + """ + A cursor for use in pagination. + """ + cursor: Cursor! +} +""" +Ordering options for VendorRiskScore connections +""" +input VendorRiskScoreOrder { + """ + The ordering direction. + """ + direction: OrderDirection! = ASC + """ + The field by which to order VendorRiskScores. + """ + field: VendorRiskScoreOrderField! +} +""" +Properties by which VendorRiskScore connections can be ordered. +""" +enum VendorRiskScoreOrderField { + created_at + updated_at + question_key + question_category + impact + likelihood + score +} +""" +Return response for updateVendorRiskScore mutation +""" +type VendorRiskScoreUpdatePayload { + """ + Updated vendorRiskScore + """ + vendorRiskScore: VendorRiskScore! +} +""" +VendorRiskScoreVendorRiskImpact is enum for the field impact +""" +enum VendorRiskScoreVendorRiskImpact @goModel(model: "github.com/theopenlane/core/common/enums.VendorRiskImpact") { + VERY_LOW + LOW + MEDIUM + HIGH + CRITICAL +} +""" +VendorRiskScoreVendorRiskLikelihood is enum for the field likelihood +""" +enum VendorRiskScoreVendorRiskLikelihood @goModel(model: "github.com/theopenlane/core/common/enums.VendorRiskLikelihood") { + VERY_LOW + LOW + MEDIUM + HIGH + VERY_HIGH +} +""" +VendorRiskScoreVendorScoringAnswerType is enum for the field answer_type +""" +enum VendorRiskScoreVendorScoringAnswerType @goModel(model: "github.com/theopenlane/core/common/enums.VendorScoringAnswerType") { + BOOLEAN + TEXT + SINGLE_SELECT + NUMERIC +} +""" +VendorRiskScoreVendorScoringCategory is enum for the field question_category +""" +enum VendorRiskScoreVendorScoringCategory @goModel(model: "github.com/theopenlane/core/common/enums.VendorScoringCategory") { + DATA_ACCESS + SECURITY_PRACTICES + REGULATORY_COMPLIANCE + FINANCIAL_STABILITY + OPERATIONAL_DEPENDENCY + BUSINESS_CONTINUITY + SUPPLY_CHAIN_RISK + INCIDENT_RESPONSE + DATA_PRIVACY +} +""" +VendorRiskScoreWhereInput is used for filtering VendorRiskScore objects. +Input was generated by ent. +""" +input VendorRiskScoreWhereInput { + not: VendorRiskScoreWhereInput + and: [VendorRiskScoreWhereInput!] + or: [VendorRiskScoreWhereInput!] + """ + id field predicates + """ + id: ID + idNEQ: ID + idIn: [ID!] + idNotIn: [ID!] + idGT: ID + idGTE: ID + idLT: ID + idLTE: ID + idEqualFold: ID + idContainsFold: ID + """ + created_at field predicates + """ + createdAt: Time + createdAtNEQ: Time + createdAtIn: [Time!] + createdAtNotIn: [Time!] + createdAtGT: Time + createdAtGTE: Time + createdAtLT: Time + createdAtLTE: Time + createdAtIsNil: Boolean + createdAtNotNil: Boolean + """ + updated_at field predicates + """ + updatedAt: Time + updatedAtNEQ: Time + updatedAtIn: [Time!] + updatedAtNotIn: [Time!] + updatedAtGT: Time + updatedAtGTE: Time + updatedAtLT: Time + updatedAtLTE: Time + updatedAtIsNil: Boolean + updatedAtNotNil: Boolean + """ + created_by field predicates + """ + createdBy: String + createdByNEQ: String + createdByIn: [String!] + createdByNotIn: [String!] + createdByGT: String + createdByGTE: String + createdByLT: String + createdByLTE: String + createdByContains: String + createdByHasPrefix: String + createdByHasSuffix: String + createdByIsNil: Boolean + createdByNotNil: Boolean + createdByEqualFold: String + createdByContainsFold: String + """ + updated_by field predicates + """ + updatedBy: String + updatedByNEQ: String + updatedByIn: [String!] + updatedByNotIn: [String!] + updatedByGT: String + updatedByGTE: String + updatedByLT: String + updatedByLTE: String + updatedByContains: String + updatedByHasPrefix: String + updatedByHasSuffix: String + updatedByIsNil: Boolean + updatedByNotNil: Boolean + updatedByEqualFold: String + updatedByContainsFold: String + """ + owner_id field predicates + """ + ownerID: ID + ownerIDNEQ: ID + ownerIDIn: [ID!] + ownerIDNotIn: [ID!] + ownerIDGT: ID + ownerIDGTE: ID + ownerIDLT: ID + ownerIDLTE: ID + ownerIDContains: ID + ownerIDHasPrefix: ID + ownerIDHasSuffix: ID + ownerIDIsNil: Boolean + ownerIDNotNil: Boolean + ownerIDEqualFold: ID + ownerIDContainsFold: ID + """ + question_key field predicates + """ + questionKey: String + questionKeyNEQ: String + questionKeyIn: [String!] + questionKeyNotIn: [String!] + questionKeyGT: String + questionKeyGTE: String + questionKeyLT: String + questionKeyLTE: String + questionKeyContains: String + questionKeyHasPrefix: String + questionKeyHasSuffix: String + questionKeyEqualFold: String + questionKeyContainsFold: String + """ + question_name field predicates + """ + questionName: String + questionNameNEQ: String + questionNameIn: [String!] + questionNameNotIn: [String!] + questionNameGT: String + questionNameGTE: String + questionNameLT: String + questionNameLTE: String + questionNameContains: String + questionNameHasPrefix: String + questionNameHasSuffix: String + questionNameEqualFold: String + questionNameContainsFold: String + """ + question_description field predicates + """ + questionDescription: String + questionDescriptionNEQ: String + questionDescriptionIn: [String!] + questionDescriptionNotIn: [String!] + questionDescriptionGT: String + questionDescriptionGTE: String + questionDescriptionLT: String + questionDescriptionLTE: String + questionDescriptionContains: String + questionDescriptionHasPrefix: String + questionDescriptionHasSuffix: String + questionDescriptionIsNil: Boolean + questionDescriptionNotNil: Boolean + questionDescriptionEqualFold: String + questionDescriptionContainsFold: String + """ + question_category field predicates + """ + questionCategory: VendorRiskScoreVendorScoringCategory + questionCategoryNEQ: VendorRiskScoreVendorScoringCategory + questionCategoryIn: [VendorRiskScoreVendorScoringCategory!] + questionCategoryNotIn: [VendorRiskScoreVendorScoringCategory!] + """ + answer_type field predicates + """ + answerType: VendorRiskScoreVendorScoringAnswerType + answerTypeNEQ: VendorRiskScoreVendorScoringAnswerType + answerTypeIn: [VendorRiskScoreVendorScoringAnswerType!] + answerTypeNotIn: [VendorRiskScoreVendorScoringAnswerType!] + """ + impact field predicates + """ + impact: VendorRiskScoreVendorRiskImpact + impactNEQ: VendorRiskScoreVendorRiskImpact + impactIn: [VendorRiskScoreVendorRiskImpact!] + impactNotIn: [VendorRiskScoreVendorRiskImpact!] + """ + likelihood field predicates + """ + likelihood: VendorRiskScoreVendorRiskLikelihood + likelihoodNEQ: VendorRiskScoreVendorRiskLikelihood + likelihoodIn: [VendorRiskScoreVendorRiskLikelihood!] + likelihoodNotIn: [VendorRiskScoreVendorRiskLikelihood!] + """ + score field predicates + """ + score: Float + scoreNEQ: Float + scoreIn: [Float!] + scoreNotIn: [Float!] + scoreGT: Float + scoreGTE: Float + scoreLT: Float + scoreLTE: Float + """ + answer field predicates + """ + answer: String + answerNEQ: String + answerIn: [String!] + answerNotIn: [String!] + answerGT: String + answerGTE: String + answerLT: String + answerLTE: String + answerContains: String + answerHasPrefix: String + answerHasSuffix: String + answerIsNil: Boolean + answerNotNil: Boolean + answerEqualFold: String + answerContainsFold: String + """ + notes field predicates + """ + notes: String + notesNEQ: String + notesIn: [String!] + notesNotIn: [String!] + notesGT: String + notesGTE: String + notesLT: String + notesLTE: String + notesContains: String + notesHasPrefix: String + notesHasSuffix: String + notesIsNil: Boolean + notesNotNil: Boolean + notesEqualFold: String + notesContainsFold: String + """ + vendor_scoring_config_id field predicates + """ + vendorScoringConfigID: ID + vendorScoringConfigIDNEQ: ID + vendorScoringConfigIDIn: [ID!] + vendorScoringConfigIDNotIn: [ID!] + vendorScoringConfigIDGT: ID + vendorScoringConfigIDGTE: ID + vendorScoringConfigIDLT: ID + vendorScoringConfigIDLTE: ID + vendorScoringConfigIDContains: ID + vendorScoringConfigIDHasPrefix: ID + vendorScoringConfigIDHasSuffix: ID + vendorScoringConfigIDIsNil: Boolean + vendorScoringConfigIDNotNil: Boolean + vendorScoringConfigIDEqualFold: ID + vendorScoringConfigIDContainsFold: ID + """ + entity_id field predicates + """ + entityID: ID + entityIDNEQ: ID + entityIDIn: [ID!] + entityIDNotIn: [ID!] + entityIDGT: ID + entityIDGTE: ID + entityIDLT: ID + entityIDLTE: ID + entityIDContains: ID + entityIDHasPrefix: ID + entityIDHasSuffix: ID + entityIDEqualFold: ID + entityIDContainsFold: ID + """ + assessment_response_id field predicates + """ + assessmentResponseID: ID + assessmentResponseIDNEQ: ID + assessmentResponseIDIn: [ID!] + assessmentResponseIDNotIn: [ID!] + assessmentResponseIDGT: ID + assessmentResponseIDGTE: ID + assessmentResponseIDLT: ID + assessmentResponseIDLTE: ID + assessmentResponseIDContains: ID + assessmentResponseIDHasPrefix: ID + assessmentResponseIDHasSuffix: ID + assessmentResponseIDIsNil: Boolean + assessmentResponseIDNotNil: Boolean + assessmentResponseIDEqualFold: ID + assessmentResponseIDContainsFold: ID + """ + owner edge predicates + """ + hasOwner: Boolean + hasOwnerWith: [OrganizationWhereInput!] + """ + vendor_scoring_config edge predicates + """ + hasVendorScoringConfig: Boolean + hasVendorScoringConfigWith: [VendorScoringConfigWhereInput!] + """ + entity edge predicates + """ + hasEntity: Boolean + hasEntityWith: [EntityWhereInput!] + """ + assessment_response edge predicates + """ + hasAssessmentResponse: Boolean + hasAssessmentResponseWith: [AssessmentResponseWhereInput!] + """ + Filter for tagsHas to contain a specific value + """ + tagsHas: String +} +type VendorScoringConfig implements Node { + id: ID! + createdAt: Time + updatedAt: Time + createdBy: String + updatedBy: String + """ + tags associated with the object + """ + tags: [String!] + """ + the organization id that owns the object + """ + ownerID: ID + """ + org-custom question overrides and additions; system defaults from models.DefaultVendorScoringQuestions are merged at read time via VendorScoringQuestionsConfig.All() + """ + questions: VendorScoringQuestionsConfig! + """ + controls how unanswered questions affect the aggregate score: ANSWERED_ONLY sums only answered questions; FULL_QUESTIONNAIRE treats unanswered as maximum risk; MANUAL disables automatic aggregation + """ + scoringMode: VendorScoringConfigVendorScoringMode! + """ + org-custom risk rating threshold overrides; system defaults from models.DefaultRiskThresholds are merged at read time via RiskThresholdsConfig.All() + """ + riskThresholds: RiskThresholdsConfig! + owner: Organization + vendorRiskScores( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for VendorRiskScores returned from the connection. + """ + orderBy: [VendorRiskScoreOrder!] + + """ + Filtering options for VendorRiskScores returned from the connection. + """ + where: VendorRiskScoreWhereInput + ): VendorRiskScoreConnection! +} +""" +Return response for createBulkVendorScoringConfig mutation +""" +type VendorScoringConfigBulkCreatePayload { + """ + Created vendorScoringConfigs + """ + vendorScoringConfigs: [VendorScoringConfig!] +} +""" +Return response for deleteBulkVendorScoringConfig mutation +""" +type VendorScoringConfigBulkDeletePayload { + """ + Deleted vendorScoringConfig IDs + """ + deletedIDs: [ID!]! +} +""" +Return response for updateBulkVendorScoringConfig mutation +""" +type VendorScoringConfigBulkUpdatePayload { + """ + Updated vendorScoringConfigs + """ + vendorScoringConfigs: [VendorScoringConfig!] + """ + IDs of the updated vendorScoringConfigs + """ + updatedIDs: [ID!] +} +""" +A connection to a list of items. +""" +type VendorScoringConfigConnection { + """ + A list of edges. + """ + edges: [VendorScoringConfigEdge] + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} +""" +Return response for createVendorScoringConfig mutation +""" +type VendorScoringConfigCreatePayload { + """ + Created vendorScoringConfig + """ + vendorScoringConfig: VendorScoringConfig! +} +""" +Return response for deleteVendorScoringConfig mutation +""" +type VendorScoringConfigDeletePayload { + """ + Deleted vendorScoringConfig ID + """ + deletedID: ID! +} +""" +An edge in a connection. +""" +type VendorScoringConfigEdge { + """ + The item at the end of the edge. + """ + node: VendorScoringConfig + """ + A cursor for use in pagination. + """ + cursor: Cursor! +} +""" +Ordering options for VendorScoringConfig connections +""" +input VendorScoringConfigOrder { + """ + The ordering direction. + """ + direction: OrderDirection! = ASC + """ + The field by which to order VendorScoringConfigs. + """ + field: VendorScoringConfigOrderField! +} +""" +Properties by which VendorScoringConfig connections can be ordered. +""" +enum VendorScoringConfigOrderField { + created_at + updated_at + scoring_mode +} +""" +Return response for updateVendorScoringConfig mutation +""" +type VendorScoringConfigUpdatePayload { + """ + Updated vendorScoringConfig + """ + vendorScoringConfig: VendorScoringConfig! +} +""" +VendorScoringConfigVendorScoringMode is enum for the field scoring_mode +""" +enum VendorScoringConfigVendorScoringMode @goModel(model: "github.com/theopenlane/core/common/enums.VendorScoringMode") { + ANSWERED_ONLY + FULL_QUESTIONNAIRE + MANUAL +} +""" +VendorScoringConfigWhereInput is used for filtering VendorScoringConfig objects. +Input was generated by ent. +""" +input VendorScoringConfigWhereInput { + not: VendorScoringConfigWhereInput + and: [VendorScoringConfigWhereInput!] + or: [VendorScoringConfigWhereInput!] + """ + id field predicates + """ + id: ID + idNEQ: ID + idIn: [ID!] + idNotIn: [ID!] + idGT: ID + idGTE: ID + idLT: ID + idLTE: ID + idEqualFold: ID + idContainsFold: ID + """ + created_at field predicates + """ + createdAt: Time + createdAtNEQ: Time + createdAtIn: [Time!] + createdAtNotIn: [Time!] + createdAtGT: Time + createdAtGTE: Time + createdAtLT: Time + createdAtLTE: Time + createdAtIsNil: Boolean + createdAtNotNil: Boolean + """ + updated_at field predicates + """ + updatedAt: Time + updatedAtNEQ: Time + updatedAtIn: [Time!] + updatedAtNotIn: [Time!] + updatedAtGT: Time + updatedAtGTE: Time + updatedAtLT: Time + updatedAtLTE: Time + updatedAtIsNil: Boolean + updatedAtNotNil: Boolean + """ + created_by field predicates + """ + createdBy: String + createdByNEQ: String + createdByIn: [String!] + createdByNotIn: [String!] + createdByGT: String + createdByGTE: String + createdByLT: String + createdByLTE: String + createdByContains: String + createdByHasPrefix: String + createdByHasSuffix: String + createdByIsNil: Boolean + createdByNotNil: Boolean + createdByEqualFold: String + createdByContainsFold: String + """ + updated_by field predicates + """ + updatedBy: String + updatedByNEQ: String + updatedByIn: [String!] + updatedByNotIn: [String!] + updatedByGT: String + updatedByGTE: String + updatedByLT: String + updatedByLTE: String + updatedByContains: String + updatedByHasPrefix: String + updatedByHasSuffix: String + updatedByIsNil: Boolean + updatedByNotNil: Boolean + updatedByEqualFold: String + updatedByContainsFold: String + """ + owner_id field predicates + """ + ownerID: ID + ownerIDNEQ: ID + ownerIDIn: [ID!] + ownerIDNotIn: [ID!] + ownerIDGT: ID + ownerIDGTE: ID + ownerIDLT: ID + ownerIDLTE: ID + ownerIDContains: ID + ownerIDHasPrefix: ID + ownerIDHasSuffix: ID + ownerIDIsNil: Boolean + ownerIDNotNil: Boolean + ownerIDEqualFold: ID + ownerIDContainsFold: ID + """ + scoring_mode field predicates + """ + scoringMode: VendorScoringConfigVendorScoringMode + scoringModeNEQ: VendorScoringConfigVendorScoringMode + scoringModeIn: [VendorScoringConfigVendorScoringMode!] + scoringModeNotIn: [VendorScoringConfigVendorScoringMode!] + """ + owner edge predicates + """ + hasOwner: Boolean + hasOwnerWith: [OrganizationWhereInput!] + """ + vendor_risk_scores edge predicates + """ + hasVendorRiskScores: Boolean + hasVendorRiskScoresWith: [VendorRiskScoreWhereInput!] + """ + Filter for tagsHas to contain a specific value + """ + tagsHas: String +} +""" +VendorScoringQuestionsConfig holds org-custom question overrides and additions for vendor scoring +""" +scalar VendorScoringQuestionsConfig """ VersionBump allows a revision to automatically be bumped based on "Major", "Minor", "Patch", or "Draft" """ @@ -93867,7 +95831,7 @@ type Vulnerability implements Node { """ externalOwnerID: String """ - lifecycle status of the vulnerability + security level of the vulnerability """ securityLevel: VulnerabilitySecurityLevel """ @@ -93955,6 +95919,34 @@ type Vulnerability implements Node { """ impacts: [String!] """ + CWE identifiers associated with the vulnerability + """ + cweIds: [String!] + """ + version range affected by the vulnerability + """ + vulnerableVersionRange: String + """ + earliest version that fixes the vulnerability + """ + firstPatchedVersion: String + """ + name of the vulnerable package or dependency + """ + packageName: String + """ + ecosystem of the vulnerable package such as npm, pip, or maven + """ + packageEcosystem: String + """ + path to the manifest file declaring the vulnerable dependency + """ + manifestPath: String + """ + scope of the dependency such as runtime or development + """ + dependencyScope: String + """ timestamp when the vulnerability was published """ publishedAt: DateTime @@ -93967,6 +95959,26 @@ type Vulnerability implements Node { """ sourceUpdatedAt: DateTime """ + timestamp when the vulnerability was dismissed + """ + dismissedAt: DateTime + """ + reason the vulnerability was dismissed such as tolerable_risk, not_used, ineligible, or no_bandwidth + """ + dismissedReason: String + """ + free-text explanation provided when the vulnerability was dismissed + """ + dismissedComment: String + """ + timestamp when the vulnerability was marked as fixed + """ + fixedAt: DateTime + """ + timestamp when the vulnerability was automatically dismissed by the source system + """ + autoDismissedAt: DateTime + """ link to the vulnerability in the source system """ externalURI: String @@ -95273,6 +97285,114 @@ input VulnerabilityWhereInput { validatedIsNil: Boolean validatedNotNil: Boolean """ + vulnerable_version_range field predicates + """ + vulnerableVersionRange: String + vulnerableVersionRangeNEQ: String + vulnerableVersionRangeIn: [String!] + vulnerableVersionRangeNotIn: [String!] + vulnerableVersionRangeGT: String + vulnerableVersionRangeGTE: String + vulnerableVersionRangeLT: String + vulnerableVersionRangeLTE: String + vulnerableVersionRangeContains: String + vulnerableVersionRangeHasPrefix: String + vulnerableVersionRangeHasSuffix: String + vulnerableVersionRangeIsNil: Boolean + vulnerableVersionRangeNotNil: Boolean + vulnerableVersionRangeEqualFold: String + vulnerableVersionRangeContainsFold: String + """ + first_patched_version field predicates + """ + firstPatchedVersion: String + firstPatchedVersionNEQ: String + firstPatchedVersionIn: [String!] + firstPatchedVersionNotIn: [String!] + firstPatchedVersionGT: String + firstPatchedVersionGTE: String + firstPatchedVersionLT: String + firstPatchedVersionLTE: String + firstPatchedVersionContains: String + firstPatchedVersionHasPrefix: String + firstPatchedVersionHasSuffix: String + firstPatchedVersionIsNil: Boolean + firstPatchedVersionNotNil: Boolean + firstPatchedVersionEqualFold: String + firstPatchedVersionContainsFold: String + """ + package_name field predicates + """ + packageName: String + packageNameNEQ: String + packageNameIn: [String!] + packageNameNotIn: [String!] + packageNameGT: String + packageNameGTE: String + packageNameLT: String + packageNameLTE: String + packageNameContains: String + packageNameHasPrefix: String + packageNameHasSuffix: String + packageNameIsNil: Boolean + packageNameNotNil: Boolean + packageNameEqualFold: String + packageNameContainsFold: String + """ + package_ecosystem field predicates + """ + packageEcosystem: String + packageEcosystemNEQ: String + packageEcosystemIn: [String!] + packageEcosystemNotIn: [String!] + packageEcosystemGT: String + packageEcosystemGTE: String + packageEcosystemLT: String + packageEcosystemLTE: String + packageEcosystemContains: String + packageEcosystemHasPrefix: String + packageEcosystemHasSuffix: String + packageEcosystemIsNil: Boolean + packageEcosystemNotNil: Boolean + packageEcosystemEqualFold: String + packageEcosystemContainsFold: String + """ + manifest_path field predicates + """ + manifestPath: String + manifestPathNEQ: String + manifestPathIn: [String!] + manifestPathNotIn: [String!] + manifestPathGT: String + manifestPathGTE: String + manifestPathLT: String + manifestPathLTE: String + manifestPathContains: String + manifestPathHasPrefix: String + manifestPathHasSuffix: String + manifestPathIsNil: Boolean + manifestPathNotNil: Boolean + manifestPathEqualFold: String + manifestPathContainsFold: String + """ + dependency_scope field predicates + """ + dependencyScope: String + dependencyScopeNEQ: String + dependencyScopeIn: [String!] + dependencyScopeNotIn: [String!] + dependencyScopeGT: String + dependencyScopeGTE: String + dependencyScopeLT: String + dependencyScopeLTE: String + dependencyScopeContains: String + dependencyScopeHasPrefix: String + dependencyScopeHasSuffix: String + dependencyScopeIsNil: Boolean + dependencyScopeNotNil: Boolean + dependencyScopeEqualFold: String + dependencyScopeContainsFold: String + """ published_at field predicates """ publishedAt: DateTime @@ -95312,6 +97432,81 @@ input VulnerabilityWhereInput { sourceUpdatedAtIsNil: Boolean sourceUpdatedAtNotNil: Boolean """ + dismissed_at field predicates + """ + dismissedAt: DateTime + dismissedAtNEQ: DateTime + dismissedAtIn: [DateTime!] + dismissedAtNotIn: [DateTime!] + dismissedAtGT: DateTime + dismissedAtGTE: DateTime + dismissedAtLT: DateTime + dismissedAtLTE: DateTime + dismissedAtIsNil: Boolean + dismissedAtNotNil: Boolean + """ + dismissed_reason field predicates + """ + dismissedReason: String + dismissedReasonNEQ: String + dismissedReasonIn: [String!] + dismissedReasonNotIn: [String!] + dismissedReasonGT: String + dismissedReasonGTE: String + dismissedReasonLT: String + dismissedReasonLTE: String + dismissedReasonContains: String + dismissedReasonHasPrefix: String + dismissedReasonHasSuffix: String + dismissedReasonIsNil: Boolean + dismissedReasonNotNil: Boolean + dismissedReasonEqualFold: String + dismissedReasonContainsFold: String + """ + dismissed_comment field predicates + """ + dismissedComment: String + dismissedCommentNEQ: String + dismissedCommentIn: [String!] + dismissedCommentNotIn: [String!] + dismissedCommentGT: String + dismissedCommentGTE: String + dismissedCommentLT: String + dismissedCommentLTE: String + dismissedCommentContains: String + dismissedCommentHasPrefix: String + dismissedCommentHasSuffix: String + dismissedCommentIsNil: Boolean + dismissedCommentNotNil: Boolean + dismissedCommentEqualFold: String + dismissedCommentContainsFold: String + """ + fixed_at field predicates + """ + fixedAt: DateTime + fixedAtNEQ: DateTime + fixedAtIn: [DateTime!] + fixedAtNotIn: [DateTime!] + fixedAtGT: DateTime + fixedAtGTE: DateTime + fixedAtLT: DateTime + fixedAtLTE: DateTime + fixedAtIsNil: Boolean + fixedAtNotNil: Boolean + """ + auto_dismissed_at field predicates + """ + autoDismissedAt: DateTime + autoDismissedAtNEQ: DateTime + autoDismissedAtIn: [DateTime!] + autoDismissedAtNotIn: [DateTime!] + autoDismissedAtGT: DateTime + autoDismissedAtGTE: DateTime + autoDismissedAtLT: DateTime + autoDismissedAtLTE: DateTime + autoDismissedAtIsNil: Boolean + autoDismissedAtNotNil: Boolean + """ external_uri field predicates """ externalURI: String @@ -95451,6 +97646,10 @@ input VulnerabilityWhereInput { Filter for impactsHas to contain a specific value """ impactsHas: String + """ + Filter for cweIdsHas to contain a specific value + """ + cweIdsHas: String } type Webauthn implements Node { id: ID!