--- policy: /ce/ca/oracle/compute/instance-secure-boot logic: /ce/ca/oracle/compute/instance-secure-boot/prod.logic.yaml executionTime: 2026-05-02T12:07:22.446728966Z generationMs: 61 executionMs: 1872 rows: - id: test1 match: true status: expected: DISAPPEARED actual: DISAPPEARED conditionIndex: expected: 99 actual: 99 conditionText: expected: isDisappeared(CA10O1__disappearanceTime__c) actual: isDisappeared(CA10O1__disappearanceTime__c) runtimeError: {} - id: test2 match: true status: expected: UNDETERMINED actual: UNDETERMINED conditionIndex: expected: 101 actual: 101 conditionText: expected: CA10O1__platformConfigJson__c.isEmpty() actual: CA10O1__platformConfigJson__c.isEmpty() runtimeError: {} - id: test3 match: true status: expected: INAPPLICABLE actual: INAPPLICABLE conditionIndex: expected: 199 actual: 199 conditionText: expected: extract('CA10O1__platformConfigJson__c') == bytes('null') actual: extract('CA10O1__platformConfigJson__c') == bytes('null') runtimeError: {} - id: test4 match: true status: expected: COMPLIANT actual: COMPLIANT conditionIndex: expected: 299 actual: 299 conditionText: expected: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == true actual: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == true runtimeError: {} - id: test5 match: true status: expected: INCOMPLIANT actual: INCOMPLIANT conditionIndex: expected: 399 actual: 399 conditionText: expected: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == false actual: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == false runtimeError: {} - id: test6 match: true status: expected: UNDETERMINED actual: UNDETERMINED conditionIndex: expected: 206 actual: 206 conditionText: expected: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty() actual: extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty() runtimeError: {} usedFiles: - path: /ce/ca/oracle/compute/instance-secure-boot/policy.yaml md5Hash: 1AA7D6FF882DD4D06573DA21F653AEBF content: | --- names: full: "Oracle IAAS Instance Secure Boot is disabled" contextual: "Oracle IAAS Instance Secure Boot is disabled" description: > Ensure that Oracle IAAS Instances have Secure Boot enabled when platform configuration data is available. Secure Boot helps protect the boot chain by allowing only trusted boot components to run during instance startup. type: "COMPLIANCE_POLICY" categories: - "SECURITY" frameworkMappings: - "/frameworks/cis-oracle-v3.1.0/03/02" - "/frameworks/cloudaware/resource-security/threat-protection" - path: /ce/ca/oracle/compute/instance-secure-boot/prod.logic.yaml md5Hash: 72A95DD0C45F00AC8FD9C650421C2A2F content: | --- inputType: "CA10O1__CaOracleIaasInstance__c" testData: - file: "test-data.json" importExtracts: - file: "/types/CA10O1__CaOracleIaasInstance__c/object.extracts.yaml" conditions: - status: "INAPPLICABLE" currentStateMessage: "Secure Boot platform configuration is not available for this instance." check: IS_EQUAL: left: EXTRACT: "CA10O1__platformConfigJson__c" right: BYTES: "null" - status: "COMPLIANT" currentStateMessage: "Secure Boot is enabled for this instance." check: IS_EQUAL: left: JSON_QUERY_BOOLEAN: arg: EXTRACT: "caJsonFrom__platformConfigJson__c" expression: "isSecureBootEnabled" undeterminedIf: evaluationError: "The platform configuration JSON query failed." resultTypeMismatch: "The Secure Boot value in the platform configuration is not a boolean." resultIsEmpty: "The platform configuration does not include a Secure Boot value." right: BOOLEAN: true - status: "INCOMPLIANT" currentStateMessage: "Secure Boot is disabled for this instance." remediationMessage: "Enable Secure Boot for this instance." check: IS_EQUAL: left: JSON_QUERY_BOOLEAN: arg: EXTRACT: "caJsonFrom__platformConfigJson__c" expression: "isSecureBootEnabled" undeterminedIf: evaluationError: "The platform configuration JSON query failed." resultTypeMismatch: "The Secure Boot value in the platform configuration is not a boolean." resultIsEmpty: "The platform configuration does not include a Secure Boot value." right: BOOLEAN: false otherwise: status: "UNDETERMINED" currentStateMessage: "Unexpected value in the Secure Boot platform configuration." - path: /ce/ca/oracle/compute/instance-secure-boot/test-data.json md5Hash: BBAEE4317BE1EA5266FE1659E34A5847 content: | [ { "expectedResult": { "status": "DISAPPEARED", "conditionIndex": "99", "conditionText": "isDisappeared(CA10O1__disappearanceTime__c)", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test1", "CA10O1__disappearanceTime__c": "2026-04-11T00:00:00Z", "CA10O1__platformConfigJson__c": "{\"isSecureBootEnabled\":false}" }, { "expectedResult": { "status": "UNDETERMINED", "conditionIndex": "101", "conditionText": "CA10O1__platformConfigJson__c.isEmpty()", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test2", "CA10O1__disappearanceTime__c": null, "CA10O1__platformConfigJson__c": "" }, { "expectedResult": { "status": "INAPPLICABLE", "conditionIndex": "199", "conditionText": "extract('CA10O1__platformConfigJson__c') == bytes('null')", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test3", "CA10O1__disappearanceTime__c": null, "CA10O1__platformConfigJson__c": "null" }, { "expectedResult": { "status": "COMPLIANT", "conditionIndex": "299", "conditionText": "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == true", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test4", "CA10O1__disappearanceTime__c": null, "CA10O1__platformConfigJson__c": "{\"isSecureBootEnabled\":true}" }, { "expectedResult": { "status": "INCOMPLIANT", "conditionIndex": "399", "conditionText": "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == false", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test5", "CA10O1__disappearanceTime__c": null, "CA10O1__platformConfigJson__c": "{\"isSecureBootEnabled\":false}" }, { "expectedResult": { "status": "UNDETERMINED", "conditionIndex": "206", "conditionText": "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty()", "runtimeError": null }, "context": { "snapshotTime": "2026-04-12T00:00:00Z" }, "Id": "test6", "CA10O1__disappearanceTime__c": null, "CA10O1__platformConfigJson__c": "{\"type\":\"AMD_VM\"}" } ] - path: /types/CA10O1__CaOracleIaasInstance__c/object.extracts.yaml md5Hash: 0C380BCFB27869AC64860559F80FEA7E content: | --- extracts: - name: "CA10O1__instanceOptionsLegacyImdsEndpoints__c" value: FIELD: path: "CA10O1__instanceOptionsLegacyImdsEndpoints__c" - name: "CA10O1__platformConfigJson__c" value: FIELD: path: "CA10O1__platformConfigJson__c" undeterminedIf: isEmpty: "Instance platform configuration cannot be empty." - name: "caJsonFrom__platformConfigJson__c" value: JSON_FROM: arg: EXTRACT: "CA10O1__platformConfigJson__c" undeterminedIf: isInvalid: "Platform configuration JSON is invalid." isEmpty: "Platform configuration JSON is empty." - name: "CA10O1__bootVolumePvEncryptionInTransit__c" value: FIELD: path: "CA10O1__bootVolumePvEncryptionInTransit__c" undeterminedIf: isEmpty: "The boot volume in-transit encryption option cannot be empty." - name: "CA10O1__sourceDetailsKmsKeyOcid__c" value: FIELD: path: "CA10O1__sourceDetailsKmsKeyOcid__c" script: |- CREATE TEMP FUNCTION mock_ExpectedResult() RETURNS ARRAY >> DETERMINISTIC LANGUAGE js AS r""" return [ { "Id" : "test1", "expectedResult" : { "status" : "DISAPPEARED", "conditionIndex" : "99", "conditionText" : "isDisappeared(CA10O1__disappearanceTime__c)", "runtimeError" : null } }, { "Id" : "test2", "expectedResult" : { "status" : "UNDETERMINED", "conditionIndex" : "101", "conditionText" : "CA10O1__platformConfigJson__c.isEmpty()", "runtimeError" : null } }, { "Id" : "test3", "expectedResult" : { "status" : "INAPPLICABLE", "conditionIndex" : "199", "conditionText" : "extract('CA10O1__platformConfigJson__c') == bytes('null')", "runtimeError" : null } }, { "Id" : "test4", "expectedResult" : { "status" : "COMPLIANT", "conditionIndex" : "299", "conditionText" : "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == true", "runtimeError" : null } }, { "Id" : "test5", "expectedResult" : { "status" : "INCOMPLIANT", "conditionIndex" : "399", "conditionText" : "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == false", "runtimeError" : null } }, { "Id" : "test6", "expectedResult" : { "status" : "UNDETERMINED", "conditionIndex" : "206", "conditionText" : "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty()", "runtimeError" : null } } ]; """; CREATE TEMP FUNCTION mock_CA10O1__CaOracleIaasInstance__c() RETURNS ARRAY >> DETERMINISTIC LANGUAGE js AS r""" return [ { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__disappearanceTime__c" : new Date("2026-04-11T00:00:00Z"), "CA10O1__platformConfigJson__c" : "{\"isSecureBootEnabled\":false}", "Id" : "test1" }, { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__platformConfigJson__c" : "", "Id" : "test2" }, { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__platformConfigJson__c" : "null", "Id" : "test3" }, { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__platformConfigJson__c" : "{\"isSecureBootEnabled\":true}", "Id" : "test4" }, { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__platformConfigJson__c" : "{\"isSecureBootEnabled\":false}", "Id" : "test5" }, { "context" : { "snapshotTime" : new Date("2026-04-12T00:00:00Z") }, "CA10O1__platformConfigJson__c" : "{\"type\":\"AMD_VM\"}", "Id" : "test6" } ]; """; CREATE TEMP FUNCTION process_CA10O1__CaOracleIaasInstance__c( obj STRUCT< CA10O1__disappearanceTime__c TIMESTAMP, CA10O1__platformConfigJson__c STRING, Id STRING >, snapshotTime TIMESTAMP ) RETURNS STRUCT DETERMINISTIC LANGUAGE js OPTIONS (library=['gs://compliance-platform-public/jmespath.min.js']) AS r""" var TextLib = new function () { this.normalize = function(arg) { return arg == null ? '' : arg.replace(/\s+/g, ' ').trim().toLowerCase(); }; this.isEmpty = function(arg) { return this.normalize(arg) == ''; }; this.isNotEmpty = function(arg) { return this.normalize(arg) != ''; }; this.equal = function(left, right) { return this.normalize(left) == this.normalize(right); }; this.notEqual = function(left, right) { return this.normalize(left) != this.normalize(right); }; this.startsWith = function(arg, substring) { return this.normalize(arg).startsWith(this.normalize(substring)); }; this.endsWith = function(arg, substring) { return this.normalize(arg).endsWith(this.normalize(substring)); }; this.contains = function(arg, substring) { return this.normalize(arg).includes(this.normalize(substring)); }; this.containsAll = function(arg, substrings) { if (substrings == null || substrings.length === 0) return false; let normalizedArg = this.normalize(arg); return substrings.every(sub => normalizedArg.includes(this.normalize(sub))); }; this.containsAny = function(arg, substrings) { if (substrings == null || substrings.length === 0) return false; let normalizedArg = this.normalize(arg); return substrings.some(sub => normalizedArg.includes(this.normalize(sub))); }; }(); var BytesLib = new function () { this.normalize = function(arg) { return arg == null ? '' : arg; }; this.isEmpty = function(arg) { return this.normalize(arg) == ''; }; this.isNotEmpty = function(arg) { return this.normalize(arg) != ''; }; this.equal = function(left, right) { return this.normalize(left) == this.normalize(right); }; this.notEqual = function(left, right) { return this.normalize(left) != this.normalize(right); }; this.startsWith = function(arg, substring) { return this.normalize(arg).startsWith(this.normalize(substring)); }; this.endsWith = function(arg, substring) { return this.normalize(arg).endsWith(this.normalize(substring)); }; this.contains = function(arg, substring) { return this.normalize(arg).includes(this.normalize(substring)); }; this.containsAll = function(arg, substrings) { if (substrings == null || substrings.length === 0) return false; let normalizedArg = this.normalize(arg); return substrings.every(sub => normalizedArg.includes(this.normalize(sub))); }; this.containsAny = function(arg, substrings) { if (substrings == null || substrings.length === 0) return false; let normalizedArg = this.normalize(arg); return substrings.some(sub => normalizedArg.includes(this.normalize(sub))); }; }(); var IsEmptyLib = new function () { this.simpleIsEmpty = function(arg) { return arg == null; }; this.simpleIsNotEmpty = function(arg) { return arg != null; }; }(); var references1 = []; // condition[0], conditionIndex:[0..99] references1.push('Deleted From Oracle [CA10O1__disappearanceTime__c]: ' + obj.CA10O1__disappearanceTime__c); if (obj.CA10O1__disappearanceTime__c != null) { return {status: 'DISAPPEARED', conditionIndex: 99, conditionText: "isDisappeared(CA10O1__disappearanceTime__c)", currentStateMessage: "Object is deleted in the source", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}; } // condition[1], conditionIndex:[100..199] function fieldChecked4() { if (BytesLib.isEmpty(obj.CA10O1__platformConfigJson__c)) { throw new Error("UNDETERMINED condition:101", {cause: {status: 'UNDETERMINED', conditionIndex: 101, conditionText: "CA10O1__platformConfigJson__c.isEmpty()", currentStateMessage: "Instance platform configuration cannot be empty.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } return obj.CA10O1__platformConfigJson__c; } function extract3() { if (!this.out) { this.out = fieldChecked4(); } return this.out; }; references1.push('Platform Config JSON [obj.CA10O1__platformConfigJson__c]: ' + obj.CA10O1__platformConfigJson__c); try { if (BytesLib.equal(extract3.call(extract3), 'null')) { return {status: 'INAPPLICABLE', conditionIndex: 199, conditionText: "extract('CA10O1__platformConfigJson__c') == bytes('null')", currentStateMessage: "Secure Boot platform configuration is not available for this instance.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}; } } catch (err) { if (err.cause && err.cause.status) { return err.cause; } else { throw err; } } // condition[2], conditionIndex:[200..299] function jsonQueryChecked5() { var input = extract7.call(extract7); var out; try { out = jmespath.search(input, 'isSecureBootEnabled'); if (out != null && typeof out != 'boolean') { throw new Error("UNDETERMINED condition:204", {cause: {status: 'UNDETERMINED', conditionIndex: 204, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultTypeMismatch()", currentStateMessage: "The Secure Boot value in the platform configuration is not a boolean.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } } catch (e) { throw new Error("UNDETERMINED condition:205", {cause: {status: 'UNDETERMINED', conditionIndex: 205, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isEvaluationFailed()", currentStateMessage: "The platform configuration JSON query failed.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: e.message}}); } if (IsEmptyLib.simpleIsEmpty(out)) { throw new Error("UNDETERMINED condition:206", {cause: {status: 'UNDETERMINED', conditionIndex: 206, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty()", currentStateMessage: "The platform configuration does not include a Secure Boot value.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } return out; } function jsonChecked8() { var input = extract10.call(extract10); if (TextLib.isEmpty(input)) { throw new Error("UNDETERMINED condition:202", {cause: {status: 'UNDETERMINED', conditionIndex: 202, conditionText: "extract('CA10O1__platformConfigJson__c').asJson().isEmpty()", currentStateMessage: "Platform configuration JSON is empty.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } var out; try { out = JSON.parse(input); } catch (e) { throw new Error("UNDETERMINED condition:203", {cause: {status: 'UNDETERMINED', conditionIndex: 203, conditionText: "extract('CA10O1__platformConfigJson__c').asJson().isInvalid()", currentStateMessage: "Platform configuration JSON is invalid.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: e.message}}); } return out; } function fieldChecked11() { if (BytesLib.isEmpty(obj.CA10O1__platformConfigJson__c)) { throw new Error("UNDETERMINED condition:201", {cause: {status: 'UNDETERMINED', conditionIndex: 201, conditionText: "CA10O1__platformConfigJson__c.isEmpty()", currentStateMessage: "Instance platform configuration cannot be empty.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } return obj.CA10O1__platformConfigJson__c; } function extract10() { if (!this.out) { this.out = fieldChecked11(); } return this.out; }; function extract7() { if (!this.out) { this.out = jsonChecked8(); } return this.out; }; try { if (jsonQueryChecked5() == true) { return {status: 'COMPLIANT', conditionIndex: 299, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == true", currentStateMessage: "Secure Boot is enabled for this instance.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}; } } catch (err) { if (err.cause && err.cause.status) { return err.cause; } else { throw err; } } // condition[3], conditionIndex:[300..399] function jsonQueryChecked12() { var input = extract14.call(extract14); var out; try { out = jmespath.search(input, 'isSecureBootEnabled'); if (out != null && typeof out != 'boolean') { throw new Error("UNDETERMINED condition:304", {cause: {status: 'UNDETERMINED', conditionIndex: 304, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultTypeMismatch()", currentStateMessage: "The Secure Boot value in the platform configuration is not a boolean.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } } catch (e) { throw new Error("UNDETERMINED condition:305", {cause: {status: 'UNDETERMINED', conditionIndex: 305, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isEvaluationFailed()", currentStateMessage: "The platform configuration JSON query failed.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: e.message}}); } if (IsEmptyLib.simpleIsEmpty(out)) { throw new Error("UNDETERMINED condition:306", {cause: {status: 'UNDETERMINED', conditionIndex: 306, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled').isResultEmpty()", currentStateMessage: "The platform configuration does not include a Secure Boot value.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } return out; } function jsonChecked15() { var input = extract17.call(extract17); if (TextLib.isEmpty(input)) { throw new Error("UNDETERMINED condition:302", {cause: {status: 'UNDETERMINED', conditionIndex: 302, conditionText: "extract('CA10O1__platformConfigJson__c').asJson().isEmpty()", currentStateMessage: "Platform configuration JSON is empty.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } var out; try { out = JSON.parse(input); } catch (e) { throw new Error("UNDETERMINED condition:303", {cause: {status: 'UNDETERMINED', conditionIndex: 303, conditionText: "extract('CA10O1__platformConfigJson__c').asJson().isInvalid()", currentStateMessage: "Platform configuration JSON is invalid.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: e.message}}); } return out; } function fieldChecked18() { if (BytesLib.isEmpty(obj.CA10O1__platformConfigJson__c)) { throw new Error("UNDETERMINED condition:301", {cause: {status: 'UNDETERMINED', conditionIndex: 301, conditionText: "CA10O1__platformConfigJson__c.isEmpty()", currentStateMessage: "Instance platform configuration cannot be empty.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}}); } return obj.CA10O1__platformConfigJson__c; } function extract17() { if (!this.out) { this.out = fieldChecked18(); } return this.out; }; function extract14() { if (!this.out) { this.out = jsonChecked15(); } return this.out; }; try { if (jsonQueryChecked12() == false) { return {status: 'INCOMPLIANT', conditionIndex: 399, conditionText: "extract('caJsonFrom__platformConfigJson__c').jsonQueryText('isSecureBootEnabled') == false", currentStateMessage: "Secure Boot is disabled for this instance.", currentStateReferences: references1.join('\n'), remediation: "Enable Secure Boot for this instance.", runtimeError: null}; } } catch (err) { if (err.cause && err.cause.status) { return err.cause; } else { throw err; } } return {status: 'UNDETERMINED', conditionIndex: 400, conditionText: "otherwise", currentStateMessage: "Unexpected value in the Secure Boot platform configuration.", currentStateReferences: references1.join('\n'), remediation: null, runtimeError: null}; """; SELECT expectedResult.Id as Id, IF ( IFNULL(expectedResult.expectedResult.status, '') = IFNULL(sObject.result.status, '') AND IFNULL(expectedResult.expectedResult.conditionIndex, -1) = IFNULL(sObject.result.conditionIndex, -1) AND IFNULL(expectedResult.expectedResult.conditionText, '') = IFNULL(sObject.result.conditionText, '') AND IFNULL(expectedResult.expectedResult.runtimeError, '') = IFNULL(sObject.result.runtimeError, ''), "MATCH", "FAIL" ) as match, expectedResult.expectedResult.status as expectedStatus, sObject.result.status as actualStatus, expectedResult.expectedResult.conditionIndex as expectedConditionIndex, sObject.result.conditionIndex as actualConditionIndex, expectedResult.expectedResult.conditionText as expectedConditionText, sObject.result.conditionText as actualConditionText, expectedResult.expectedResult.runtimeError as expectedRuntimeError, sObject.result.runtimeError as actualRuntimeError FROM UNNEST(mock_ExpectedResult()) expectedResult LEFT JOIN ( SELECT sObject.CA10O1__disappearanceTime__c AS CA10O1__disappearanceTime__c, sObject.CA10O1__platformConfigJson__c AS CA10O1__platformConfigJson__c, sObject.Id AS Id, process_CA10O1__CaOracleIaasInstance__c( STRUCT( sObject.CA10O1__disappearanceTime__c AS CA10O1__disappearanceTime__c, sObject.CA10O1__platformConfigJson__c AS CA10O1__platformConfigJson__c, sObject.Id AS Id ), sObject.context.snapshotTime ) as result FROM UNNEST(mock_CA10O1__CaOracleIaasInstance__c()) AS sObject ) sObject ON sObject.Id = expectedResult.Id;