in unstructured/google/containeranalysis/beta/note.go [362:1074]
func UnstructuredToNote(u *unstructured.Resource) (*dclService.Note, error) {
r := &dclService.Note{}
if _, ok := u.Object["attestation"]; ok {
if rAttestation, ok := u.Object["attestation"].(map[string]interface{}); ok {
r.Attestation = &dclService.NoteAttestation{}
if _, ok := rAttestation["hint"]; ok {
if rAttestationHint, ok := rAttestation["hint"].(map[string]interface{}); ok {
r.Attestation.Hint = &dclService.NoteAttestationHint{}
if _, ok := rAttestationHint["humanReadableName"]; ok {
if s, ok := rAttestationHint["humanReadableName"].(string); ok {
r.Attestation.Hint.HumanReadableName = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Attestation.Hint.HumanReadableName: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Attestation.Hint: expected map[string]interface{}")
}
}
} else {
return nil, fmt.Errorf("r.Attestation: expected map[string]interface{}")
}
}
if _, ok := u.Object["build"]; ok {
if rBuild, ok := u.Object["build"].(map[string]interface{}); ok {
r.Build = &dclService.NoteBuild{}
if _, ok := rBuild["builderVersion"]; ok {
if s, ok := rBuild["builderVersion"].(string); ok {
r.Build.BuilderVersion = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Build.BuilderVersion: expected string")
}
}
if _, ok := rBuild["signature"]; ok {
if rBuildSignature, ok := rBuild["signature"].(map[string]interface{}); ok {
r.Build.Signature = &dclService.NoteBuildSignature{}
if _, ok := rBuildSignature["keyId"]; ok {
if s, ok := rBuildSignature["keyId"].(string); ok {
r.Build.Signature.KeyId = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Build.Signature.KeyId: expected string")
}
}
if _, ok := rBuildSignature["keyType"]; ok {
if s, ok := rBuildSignature["keyType"].(string); ok {
r.Build.Signature.KeyType = dclService.NoteBuildSignatureKeyTypeEnumRef(s)
} else {
return nil, fmt.Errorf("r.Build.Signature.KeyType: expected string")
}
}
if _, ok := rBuildSignature["publicKey"]; ok {
if s, ok := rBuildSignature["publicKey"].(string); ok {
r.Build.Signature.PublicKey = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Build.Signature.PublicKey: expected string")
}
}
if _, ok := rBuildSignature["signature"]; ok {
if s, ok := rBuildSignature["signature"].(string); ok {
r.Build.Signature.Signature = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Build.Signature.Signature: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Build.Signature: expected map[string]interface{}")
}
}
} else {
return nil, fmt.Errorf("r.Build: expected map[string]interface{}")
}
}
if _, ok := u.Object["createTime"]; ok {
if s, ok := u.Object["createTime"].(string); ok {
r.CreateTime = dcl.String(s)
} else {
return nil, fmt.Errorf("r.CreateTime: expected string")
}
}
if _, ok := u.Object["deployment"]; ok {
if rDeployment, ok := u.Object["deployment"].(map[string]interface{}); ok {
r.Deployment = &dclService.NoteDeployment{}
if _, ok := rDeployment["resourceUri"]; ok {
if s, ok := rDeployment["resourceUri"].([]interface{}); ok {
for _, ss := range s {
if strval, ok := ss.(string); ok {
r.Deployment.ResourceUri = append(r.Deployment.ResourceUri, strval)
}
}
} else {
return nil, fmt.Errorf("r.Deployment.ResourceUri: expected []interface{}")
}
}
} else {
return nil, fmt.Errorf("r.Deployment: expected map[string]interface{}")
}
}
if _, ok := u.Object["discovery"]; ok {
if rDiscovery, ok := u.Object["discovery"].(map[string]interface{}); ok {
r.Discovery = &dclService.NoteDiscovery{}
if _, ok := rDiscovery["analysisKind"]; ok {
if s, ok := rDiscovery["analysisKind"].(string); ok {
r.Discovery.AnalysisKind = dclService.NoteDiscoveryAnalysisKindEnumRef(s)
} else {
return nil, fmt.Errorf("r.Discovery.AnalysisKind: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Discovery: expected map[string]interface{}")
}
}
if _, ok := u.Object["expirationTime"]; ok {
if s, ok := u.Object["expirationTime"].(string); ok {
r.ExpirationTime = dcl.String(s)
} else {
return nil, fmt.Errorf("r.ExpirationTime: expected string")
}
}
if _, ok := u.Object["image"]; ok {
if rImage, ok := u.Object["image"].(map[string]interface{}); ok {
r.Image = &dclService.NoteImage{}
if _, ok := rImage["fingerprint"]; ok {
if rImageFingerprint, ok := rImage["fingerprint"].(map[string]interface{}); ok {
r.Image.Fingerprint = &dclService.NoteImageFingerprint{}
if _, ok := rImageFingerprint["v1Name"]; ok {
if s, ok := rImageFingerprint["v1Name"].(string); ok {
r.Image.Fingerprint.V1Name = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Image.Fingerprint.V1Name: expected string")
}
}
if _, ok := rImageFingerprint["v2Blob"]; ok {
if s, ok := rImageFingerprint["v2Blob"].([]interface{}); ok {
for _, ss := range s {
if strval, ok := ss.(string); ok {
r.Image.Fingerprint.V2Blob = append(r.Image.Fingerprint.V2Blob, strval)
}
}
} else {
return nil, fmt.Errorf("r.Image.Fingerprint.V2Blob: expected []interface{}")
}
}
if _, ok := rImageFingerprint["v2Name"]; ok {
if s, ok := rImageFingerprint["v2Name"].(string); ok {
r.Image.Fingerprint.V2Name = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Image.Fingerprint.V2Name: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Image.Fingerprint: expected map[string]interface{}")
}
}
if _, ok := rImage["resourceUrl"]; ok {
if s, ok := rImage["resourceUrl"].(string); ok {
r.Image.ResourceUrl = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Image.ResourceUrl: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Image: expected map[string]interface{}")
}
}
if _, ok := u.Object["longDescription"]; ok {
if s, ok := u.Object["longDescription"].(string); ok {
r.LongDescription = dcl.String(s)
} else {
return nil, fmt.Errorf("r.LongDescription: expected string")
}
}
if _, ok := u.Object["name"]; ok {
if s, ok := u.Object["name"].(string); ok {
r.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Name: expected string")
}
}
if _, ok := u.Object["package"]; ok {
if rPackage, ok := u.Object["package"].(map[string]interface{}); ok {
r.Package = &dclService.NotePackage{}
if _, ok := rPackage["distribution"]; ok {
if s, ok := rPackage["distribution"].([]interface{}); ok {
for _, o := range s {
if objval, ok := o.(map[string]interface{}); ok {
var rPackageDistribution dclService.NotePackageDistribution
if _, ok := objval["architecture"]; ok {
if s, ok := objval["architecture"].(string); ok {
rPackageDistribution.Architecture = dclService.NotePackageDistributionArchitectureEnumRef(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.Architecture: expected string")
}
}
if _, ok := objval["cpeUri"]; ok {
if s, ok := objval["cpeUri"].(string); ok {
rPackageDistribution.CpeUri = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.CpeUri: expected string")
}
}
if _, ok := objval["description"]; ok {
if s, ok := objval["description"].(string); ok {
rPackageDistribution.Description = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.Description: expected string")
}
}
if _, ok := objval["latestVersion"]; ok {
if rPackageDistributionLatestVersion, ok := objval["latestVersion"].(map[string]interface{}); ok {
rPackageDistribution.LatestVersion = &dclService.NotePackageDistributionLatestVersion{}
if _, ok := rPackageDistributionLatestVersion["epoch"]; ok {
if i, ok := rPackageDistributionLatestVersion["epoch"].(int64); ok {
rPackageDistribution.LatestVersion.Epoch = dcl.Int64(i)
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion.Epoch: expected int64")
}
}
if _, ok := rPackageDistributionLatestVersion["fullName"]; ok {
if s, ok := rPackageDistributionLatestVersion["fullName"].(string); ok {
rPackageDistribution.LatestVersion.FullName = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion.FullName: expected string")
}
}
if _, ok := rPackageDistributionLatestVersion["kind"]; ok {
if s, ok := rPackageDistributionLatestVersion["kind"].(string); ok {
rPackageDistribution.LatestVersion.Kind = dclService.NotePackageDistributionLatestVersionKindEnumRef(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion.Kind: expected string")
}
}
if _, ok := rPackageDistributionLatestVersion["name"]; ok {
if s, ok := rPackageDistributionLatestVersion["name"].(string); ok {
rPackageDistribution.LatestVersion.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion.Name: expected string")
}
}
if _, ok := rPackageDistributionLatestVersion["revision"]; ok {
if s, ok := rPackageDistributionLatestVersion["revision"].(string); ok {
rPackageDistribution.LatestVersion.Revision = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion.Revision: expected string")
}
}
} else {
return nil, fmt.Errorf("rPackageDistribution.LatestVersion: expected map[string]interface{}")
}
}
if _, ok := objval["maintainer"]; ok {
if s, ok := objval["maintainer"].(string); ok {
rPackageDistribution.Maintainer = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.Maintainer: expected string")
}
}
if _, ok := objval["url"]; ok {
if s, ok := objval["url"].(string); ok {
rPackageDistribution.Url = dcl.String(s)
} else {
return nil, fmt.Errorf("rPackageDistribution.Url: expected string")
}
}
r.Package.Distribution = append(r.Package.Distribution, rPackageDistribution)
}
}
} else {
return nil, fmt.Errorf("r.Package.Distribution: expected []interface{}")
}
}
if _, ok := rPackage["name"]; ok {
if s, ok := rPackage["name"].(string); ok {
r.Package.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Package.Name: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Package: expected map[string]interface{}")
}
}
if _, ok := u.Object["project"]; ok {
if s, ok := u.Object["project"].(string); ok {
r.Project = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Project: expected string")
}
}
if _, ok := u.Object["relatedNoteNames"]; ok {
if s, ok := u.Object["relatedNoteNames"].([]interface{}); ok {
for _, ss := range s {
if strval, ok := ss.(string); ok {
r.RelatedNoteNames = append(r.RelatedNoteNames, strval)
}
}
} else {
return nil, fmt.Errorf("r.RelatedNoteNames: expected []interface{}")
}
}
if _, ok := u.Object["relatedUrl"]; ok {
if s, ok := u.Object["relatedUrl"].([]interface{}); ok {
for _, o := range s {
if objval, ok := o.(map[string]interface{}); ok {
var rRelatedUrl dclService.NoteRelatedUrl
if _, ok := objval["label"]; ok {
if s, ok := objval["label"].(string); ok {
rRelatedUrl.Label = dcl.String(s)
} else {
return nil, fmt.Errorf("rRelatedUrl.Label: expected string")
}
}
if _, ok := objval["url"]; ok {
if s, ok := objval["url"].(string); ok {
rRelatedUrl.Url = dcl.String(s)
} else {
return nil, fmt.Errorf("rRelatedUrl.Url: expected string")
}
}
r.RelatedUrl = append(r.RelatedUrl, rRelatedUrl)
}
}
} else {
return nil, fmt.Errorf("r.RelatedUrl: expected []interface{}")
}
}
if _, ok := u.Object["shortDescription"]; ok {
if s, ok := u.Object["shortDescription"].(string); ok {
r.ShortDescription = dcl.String(s)
} else {
return nil, fmt.Errorf("r.ShortDescription: expected string")
}
}
if _, ok := u.Object["updateTime"]; ok {
if s, ok := u.Object["updateTime"].(string); ok {
r.UpdateTime = dcl.String(s)
} else {
return nil, fmt.Errorf("r.UpdateTime: expected string")
}
}
if _, ok := u.Object["vulnerability"]; ok {
if rVulnerability, ok := u.Object["vulnerability"].(map[string]interface{}); ok {
r.Vulnerability = &dclService.NoteVulnerability{}
if _, ok := rVulnerability["cvssScore"]; ok {
if f, ok := rVulnerability["cvssScore"].(float64); ok {
r.Vulnerability.CvssScore = dcl.Float64(f)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssScore: expected float64")
}
}
if _, ok := rVulnerability["cvssV3"]; ok {
if rVulnerabilityCvssV3, ok := rVulnerability["cvssV3"].(map[string]interface{}); ok {
r.Vulnerability.CvssV3 = &dclService.NoteVulnerabilityCvssV3{}
if _, ok := rVulnerabilityCvssV3["attackComplexity"]; ok {
if s, ok := rVulnerabilityCvssV3["attackComplexity"].(string); ok {
r.Vulnerability.CvssV3.AttackComplexity = dclService.NoteVulnerabilityCvssV3AttackComplexityEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.AttackComplexity: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["attackVector"]; ok {
if s, ok := rVulnerabilityCvssV3["attackVector"].(string); ok {
r.Vulnerability.CvssV3.AttackVector = dclService.NoteVulnerabilityCvssV3AttackVectorEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.AttackVector: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["availabilityImpact"]; ok {
if s, ok := rVulnerabilityCvssV3["availabilityImpact"].(string); ok {
r.Vulnerability.CvssV3.AvailabilityImpact = dclService.NoteVulnerabilityCvssV3AvailabilityImpactEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.AvailabilityImpact: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["baseScore"]; ok {
if f, ok := rVulnerabilityCvssV3["baseScore"].(float64); ok {
r.Vulnerability.CvssV3.BaseScore = dcl.Float64(f)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.BaseScore: expected float64")
}
}
if _, ok := rVulnerabilityCvssV3["confidentialityImpact"]; ok {
if s, ok := rVulnerabilityCvssV3["confidentialityImpact"].(string); ok {
r.Vulnerability.CvssV3.ConfidentialityImpact = dclService.NoteVulnerabilityCvssV3ConfidentialityImpactEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.ConfidentialityImpact: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["exploitabilityScore"]; ok {
if f, ok := rVulnerabilityCvssV3["exploitabilityScore"].(float64); ok {
r.Vulnerability.CvssV3.ExploitabilityScore = dcl.Float64(f)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.ExploitabilityScore: expected float64")
}
}
if _, ok := rVulnerabilityCvssV3["impactScore"]; ok {
if f, ok := rVulnerabilityCvssV3["impactScore"].(float64); ok {
r.Vulnerability.CvssV3.ImpactScore = dcl.Float64(f)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.ImpactScore: expected float64")
}
}
if _, ok := rVulnerabilityCvssV3["integrityImpact"]; ok {
if s, ok := rVulnerabilityCvssV3["integrityImpact"].(string); ok {
r.Vulnerability.CvssV3.IntegrityImpact = dclService.NoteVulnerabilityCvssV3IntegrityImpactEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.IntegrityImpact: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["privilegesRequired"]; ok {
if s, ok := rVulnerabilityCvssV3["privilegesRequired"].(string); ok {
r.Vulnerability.CvssV3.PrivilegesRequired = dclService.NoteVulnerabilityCvssV3PrivilegesRequiredEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.PrivilegesRequired: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["scope"]; ok {
if s, ok := rVulnerabilityCvssV3["scope"].(string); ok {
r.Vulnerability.CvssV3.Scope = dclService.NoteVulnerabilityCvssV3ScopeEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.Scope: expected string")
}
}
if _, ok := rVulnerabilityCvssV3["userInteraction"]; ok {
if s, ok := rVulnerabilityCvssV3["userInteraction"].(string); ok {
r.Vulnerability.CvssV3.UserInteraction = dclService.NoteVulnerabilityCvssV3UserInteractionEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3.UserInteraction: expected string")
}
}
} else {
return nil, fmt.Errorf("r.Vulnerability.CvssV3: expected map[string]interface{}")
}
}
if _, ok := rVulnerability["details"]; ok {
if s, ok := rVulnerability["details"].([]interface{}); ok {
for _, o := range s {
if objval, ok := o.(map[string]interface{}); ok {
var rVulnerabilityDetails dclService.NoteVulnerabilityDetails
if _, ok := objval["affectedCpeUri"]; ok {
if s, ok := objval["affectedCpeUri"].(string); ok {
rVulnerabilityDetails.AffectedCpeUri = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedCpeUri: expected string")
}
}
if _, ok := objval["affectedPackage"]; ok {
if s, ok := objval["affectedPackage"].(string); ok {
rVulnerabilityDetails.AffectedPackage = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedPackage: expected string")
}
}
if _, ok := objval["affectedVersionEnd"]; ok {
if rVulnerabilityDetailsAffectedVersionEnd, ok := objval["affectedVersionEnd"].(map[string]interface{}); ok {
rVulnerabilityDetails.AffectedVersionEnd = &dclService.NoteVulnerabilityDetailsAffectedVersionEnd{}
if _, ok := rVulnerabilityDetailsAffectedVersionEnd["epoch"]; ok {
if i, ok := rVulnerabilityDetailsAffectedVersionEnd["epoch"].(int64); ok {
rVulnerabilityDetails.AffectedVersionEnd.Epoch = dcl.Int64(i)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd.Epoch: expected int64")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionEnd["fullName"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionEnd["fullName"].(string); ok {
rVulnerabilityDetails.AffectedVersionEnd.FullName = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd.FullName: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionEnd["kind"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionEnd["kind"].(string); ok {
rVulnerabilityDetails.AffectedVersionEnd.Kind = dclService.NoteVulnerabilityDetailsAffectedVersionEndKindEnumRef(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd.Kind: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionEnd["name"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionEnd["name"].(string); ok {
rVulnerabilityDetails.AffectedVersionEnd.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd.Name: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionEnd["revision"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionEnd["revision"].(string); ok {
rVulnerabilityDetails.AffectedVersionEnd.Revision = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd.Revision: expected string")
}
}
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionEnd: expected map[string]interface{}")
}
}
if _, ok := objval["affectedVersionStart"]; ok {
if rVulnerabilityDetailsAffectedVersionStart, ok := objval["affectedVersionStart"].(map[string]interface{}); ok {
rVulnerabilityDetails.AffectedVersionStart = &dclService.NoteVulnerabilityDetailsAffectedVersionStart{}
if _, ok := rVulnerabilityDetailsAffectedVersionStart["epoch"]; ok {
if i, ok := rVulnerabilityDetailsAffectedVersionStart["epoch"].(int64); ok {
rVulnerabilityDetails.AffectedVersionStart.Epoch = dcl.Int64(i)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart.Epoch: expected int64")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionStart["fullName"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionStart["fullName"].(string); ok {
rVulnerabilityDetails.AffectedVersionStart.FullName = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart.FullName: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionStart["kind"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionStart["kind"].(string); ok {
rVulnerabilityDetails.AffectedVersionStart.Kind = dclService.NoteVulnerabilityDetailsAffectedVersionStartKindEnumRef(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart.Kind: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionStart["name"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionStart["name"].(string); ok {
rVulnerabilityDetails.AffectedVersionStart.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart.Name: expected string")
}
}
if _, ok := rVulnerabilityDetailsAffectedVersionStart["revision"]; ok {
if s, ok := rVulnerabilityDetailsAffectedVersionStart["revision"].(string); ok {
rVulnerabilityDetails.AffectedVersionStart.Revision = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart.Revision: expected string")
}
}
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.AffectedVersionStart: expected map[string]interface{}")
}
}
if _, ok := objval["description"]; ok {
if s, ok := objval["description"].(string); ok {
rVulnerabilityDetails.Description = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.Description: expected string")
}
}
if _, ok := objval["fixedCpeUri"]; ok {
if s, ok := objval["fixedCpeUri"].(string); ok {
rVulnerabilityDetails.FixedCpeUri = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedCpeUri: expected string")
}
}
if _, ok := objval["fixedPackage"]; ok {
if s, ok := objval["fixedPackage"].(string); ok {
rVulnerabilityDetails.FixedPackage = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedPackage: expected string")
}
}
if _, ok := objval["fixedVersion"]; ok {
if rVulnerabilityDetailsFixedVersion, ok := objval["fixedVersion"].(map[string]interface{}); ok {
rVulnerabilityDetails.FixedVersion = &dclService.NoteVulnerabilityDetailsFixedVersion{}
if _, ok := rVulnerabilityDetailsFixedVersion["epoch"]; ok {
if i, ok := rVulnerabilityDetailsFixedVersion["epoch"].(int64); ok {
rVulnerabilityDetails.FixedVersion.Epoch = dcl.Int64(i)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion.Epoch: expected int64")
}
}
if _, ok := rVulnerabilityDetailsFixedVersion["fullName"]; ok {
if s, ok := rVulnerabilityDetailsFixedVersion["fullName"].(string); ok {
rVulnerabilityDetails.FixedVersion.FullName = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion.FullName: expected string")
}
}
if _, ok := rVulnerabilityDetailsFixedVersion["kind"]; ok {
if s, ok := rVulnerabilityDetailsFixedVersion["kind"].(string); ok {
rVulnerabilityDetails.FixedVersion.Kind = dclService.NoteVulnerabilityDetailsFixedVersionKindEnumRef(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion.Kind: expected string")
}
}
if _, ok := rVulnerabilityDetailsFixedVersion["name"]; ok {
if s, ok := rVulnerabilityDetailsFixedVersion["name"].(string); ok {
rVulnerabilityDetails.FixedVersion.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion.Name: expected string")
}
}
if _, ok := rVulnerabilityDetailsFixedVersion["revision"]; ok {
if s, ok := rVulnerabilityDetailsFixedVersion["revision"].(string); ok {
rVulnerabilityDetails.FixedVersion.Revision = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion.Revision: expected string")
}
}
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.FixedVersion: expected map[string]interface{}")
}
}
if _, ok := objval["isObsolete"]; ok {
if b, ok := objval["isObsolete"].(bool); ok {
rVulnerabilityDetails.IsObsolete = dcl.Bool(b)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.IsObsolete: expected bool")
}
}
if _, ok := objval["packageType"]; ok {
if s, ok := objval["packageType"].(string); ok {
rVulnerabilityDetails.PackageType = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.PackageType: expected string")
}
}
if _, ok := objval["severityName"]; ok {
if s, ok := objval["severityName"].(string); ok {
rVulnerabilityDetails.SeverityName = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.SeverityName: expected string")
}
}
if _, ok := objval["sourceUpdateTime"]; ok {
if s, ok := objval["sourceUpdateTime"].(string); ok {
rVulnerabilityDetails.SourceUpdateTime = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityDetails.SourceUpdateTime: expected string")
}
}
r.Vulnerability.Details = append(r.Vulnerability.Details, rVulnerabilityDetails)
}
}
} else {
return nil, fmt.Errorf("r.Vulnerability.Details: expected []interface{}")
}
}
if _, ok := rVulnerability["severity"]; ok {
if s, ok := rVulnerability["severity"].(string); ok {
r.Vulnerability.Severity = dclService.NoteVulnerabilitySeverityEnumRef(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.Severity: expected string")
}
}
if _, ok := rVulnerability["sourceUpdateTime"]; ok {
if s, ok := rVulnerability["sourceUpdateTime"].(string); ok {
r.Vulnerability.SourceUpdateTime = dcl.String(s)
} else {
return nil, fmt.Errorf("r.Vulnerability.SourceUpdateTime: expected string")
}
}
if _, ok := rVulnerability["windowsDetails"]; ok {
if s, ok := rVulnerability["windowsDetails"].([]interface{}); ok {
for _, o := range s {
if objval, ok := o.(map[string]interface{}); ok {
var rVulnerabilityWindowsDetails dclService.NoteVulnerabilityWindowsDetails
if _, ok := objval["cpeUri"]; ok {
if s, ok := objval["cpeUri"].(string); ok {
rVulnerabilityWindowsDetails.CpeUri = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetails.CpeUri: expected string")
}
}
if _, ok := objval["description"]; ok {
if s, ok := objval["description"].(string); ok {
rVulnerabilityWindowsDetails.Description = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetails.Description: expected string")
}
}
if _, ok := objval["fixingKbs"]; ok {
if s, ok := objval["fixingKbs"].([]interface{}); ok {
for _, o := range s {
if objval, ok := o.(map[string]interface{}); ok {
var rVulnerabilityWindowsDetailsFixingKbs dclService.NoteVulnerabilityWindowsDetailsFixingKbs
if _, ok := objval["name"]; ok {
if s, ok := objval["name"].(string); ok {
rVulnerabilityWindowsDetailsFixingKbs.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetailsFixingKbs.Name: expected string")
}
}
if _, ok := objval["url"]; ok {
if s, ok := objval["url"].(string); ok {
rVulnerabilityWindowsDetailsFixingKbs.Url = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetailsFixingKbs.Url: expected string")
}
}
rVulnerabilityWindowsDetails.FixingKbs = append(rVulnerabilityWindowsDetails.FixingKbs, rVulnerabilityWindowsDetailsFixingKbs)
}
}
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetails.FixingKbs: expected []interface{}")
}
}
if _, ok := objval["name"]; ok {
if s, ok := objval["name"].(string); ok {
rVulnerabilityWindowsDetails.Name = dcl.String(s)
} else {
return nil, fmt.Errorf("rVulnerabilityWindowsDetails.Name: expected string")
}
}
r.Vulnerability.WindowsDetails = append(r.Vulnerability.WindowsDetails, rVulnerabilityWindowsDetails)
}
}
} else {
return nil, fmt.Errorf("r.Vulnerability.WindowsDetails: expected []interface{}")
}
}
} else {
return nil, fmt.Errorf("r.Vulnerability: expected map[string]interface{}")
}
}
return r, nil
}