UNPKG

@broadcom/file-master-plus-for-zowe-cli

Version:

File Master Plus Plug-in for Zowe CLI

802 lines 67.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FMPCreate = void 0; const imperative_1 = require("@zowe/imperative"); const FMPRestClient_1 = require("../utils/FMPRestClient"); const Constants_1 = require("../../Constants"); class FMPCreate { static doCreatePS(FMPSession, datasetName, requestPSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dPrimarySpc = 1; const dSecondarySpc = 1; const dBlockSz = 6160; const dLrecl = 80; if (requestPSBody.spaceUnit === undefined && requestPSBody.model === undefined) { requestPSBody.spaceUnit = "CYL"; } if (requestPSBody.primarySpace === undefined && requestPSBody.model === undefined) { requestPSBody.primarySpace = dPrimarySpc; } if (requestPSBody.secondarySpace === undefined && requestPSBody.model === undefined) { requestPSBody.secondarySpace = dSecondarySpc; } if (requestPSBody.recordFormat === undefined && requestPSBody.model === undefined) { requestPSBody.recordFormat = "FB"; } if (requestPSBody.blockSize === undefined && requestPSBody.model === undefined) { requestPSBody.blockSize = dBlockSz; } if (requestPSBody.logicalRecordLength === undefined && requestPSBody.model === undefined) { requestPSBody.logicalRecordLength = dLrecl; } let expPerm; let expDate; if (requestPSBody.expirationDate === "P" || requestPSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestPSBody.expirationDate; } const body = { request: "create", fileFormat: "MVS", dsntype: "SEQ", model: requestPSBody.model, dcb: { lrecl: requestPSBody.logicalRecordLength, blksize: requestPSBody.blockSize, recfm: requestPSBody.recordFormat }, space: { units: requestPSBody.spaceUnit, primary: requestPSBody.primarySpace, secondary: requestPSBody.secondarySpace, }, volume: requestPSBody.volume, unitType: requestPSBody.unitType, expdt: { date: expDate, permanent: expPerm }, sms: { storclas: requestPSBody.storageClass, mgmtclas: requestPSBody.managementClass, dataclas: requestPSBody.dataClass } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateLARGE(FMPSession, datasetName, requestLARGEBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dPrimarySpc = 1; const dSecondarySpc = 1; const dBlockSz = 6160; const dLrecl = 80; if (requestLARGEBody.spaceUnit === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.spaceUnit = "CYL"; } if (requestLARGEBody.primarySpace === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.primarySpace = dPrimarySpc; } if (requestLARGEBody.secondarySpace === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.secondarySpace = dSecondarySpc; } if (requestLARGEBody.recordFormat === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.recordFormat = "FB"; } if (requestLARGEBody.blockSize === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.blockSize = dBlockSz; } if (requestLARGEBody.logicalRecordLength === undefined && requestLARGEBody.model === undefined) { requestLARGEBody.logicalRecordLength = dLrecl; } let expPerm; let expDate; if (requestLARGEBody.expirationDate === "P" || requestLARGEBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestLARGEBody.expirationDate; } const body = { request: "create", fileFormat: "MVS", dsntype: "LARGE", model: requestLARGEBody.model, dcb: { lrecl: requestLARGEBody.logicalRecordLength, blksize: requestLARGEBody.blockSize, recfm: requestLARGEBody.recordFormat }, space: { units: requestLARGEBody.spaceUnit, primary: requestLARGEBody.primarySpace, secondary: requestLARGEBody.secondarySpace, }, volume: requestLARGEBody.volume, unitType: requestLARGEBody.unitType, expdt: { date: expDate, permanent: expPerm }, sms: { storclas: requestLARGEBody.storageClass, mgmtclas: requestLARGEBody.managementClass, dataclas: requestLARGEBody.dataClass } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreatePDS(FMPSession, datasetName, requestPDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dPrimarySpc = 1; const dSecondarySpc = 1; const dBlockSz = 6160; const dLrecl = 80; const dDirBlks = 5; if (requestPDSBody.spaceUnit === undefined && requestPDSBody.model === undefined) { requestPDSBody.spaceUnit = "CYL"; } if (requestPDSBody.primarySpace === undefined && requestPDSBody.model === undefined) { requestPDSBody.primarySpace = dPrimarySpc; } if (requestPDSBody.secondarySpace === undefined && requestPDSBody.model === undefined) { requestPDSBody.secondarySpace = dSecondarySpc; } if (requestPDSBody.recordFormat === undefined && requestPDSBody.model === undefined) { requestPDSBody.recordFormat = "FB"; } if (requestPDSBody.blockSize === undefined && requestPDSBody.model === undefined) { requestPDSBody.blockSize = dBlockSz; } if (requestPDSBody.logicalRecordLength === undefined && requestPDSBody.model === undefined) { requestPDSBody.logicalRecordLength = dLrecl; } if (requestPDSBody.directoryBlocks === undefined && requestPDSBody.model === undefined) { requestPDSBody.directoryBlocks = dDirBlks; } let expPerm; let expDate; if (requestPDSBody.expirationDate === "P" || requestPDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestPDSBody.expirationDate; } const formatVolume = []; if (requestPDSBody.volume) { formatVolume.push(requestPDSBody.volume); } const body = { request: "create", fileFormat: "MVS", dsntype: "PDS", model: requestPDSBody.model, dcb: { lrecl: requestPDSBody.logicalRecordLength, blksize: requestPDSBody.blockSize, recfm: requestPDSBody.recordFormat }, space: { units: requestPDSBody.spaceUnit, primary: requestPDSBody.primarySpace, secondary: requestPDSBody.secondarySpace, directory: requestPDSBody.directoryBlocks }, volume: formatVolume, unitType: requestPDSBody.unitType, expdt: { date: expDate, permanent: expPerm }, sms: { storclas: requestPDSBody.storageClass, mgmtclas: requestPDSBody.managementClass, dataclas: requestPDSBody.dataClass } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreatePDSE(FMPSession, datasetName, requestPDSEBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dPrimarySpc = 1; const dSecondarySpc = 1; const dBlockSz = 6160; const dLrecl = 80; if (requestPDSEBody.spaceUnit === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.spaceUnit = "CYL"; } if (requestPDSEBody.primarySpace === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.primarySpace = dPrimarySpc; } if (requestPDSEBody.secondarySpace === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.secondarySpace = dSecondarySpc; } if (requestPDSEBody.recordFormat === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.recordFormat = "FB"; } if (requestPDSEBody.blockSize === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.blockSize = dBlockSz; } if (requestPDSEBody.logicalRecordLength === undefined && requestPDSEBody.model === undefined) { requestPDSEBody.logicalRecordLength = dLrecl; } let expPerm; let expDate; if (requestPDSEBody.expirationDate === "P" || requestPDSEBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestPDSEBody.expirationDate; } const formatVolume = []; if (requestPDSEBody.volume) { formatVolume.push(requestPDSEBody.volume); } const body = { request: "create", fileFormat: "MVS", dsntype: "PDSE", model: requestPDSEBody.model, dsVersion: requestPDSEBody.dsVersion, pdseGen: requestPDSEBody.generations, dcb: { lrecl: requestPDSEBody.logicalRecordLength, blksize: requestPDSEBody.blockSize, recfm: requestPDSEBody.recordFormat }, space: { units: requestPDSEBody.spaceUnit, primary: requestPDSEBody.primarySpace, secondary: requestPDSEBody.secondarySpace, }, volume: formatVolume, unitType: requestPDSEBody.unitType, expdt: { date: expDate, permanent: expPerm }, sms: { storclas: requestPDSEBody.storageClass, mgmtclas: requestPDSEBody.managementClass, dataclas: requestPDSEBody.dataClass } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateKSDS(FMPSession, datasetName, requestKSDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dataCSI = 20480; const dataPS = 18; const dataSS = 3; const indexCSI = 512; const indexPS = 1; const indexSS = 1; if (requestKSDSBody.dataControlSizeInterval === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.dataControlSizeInterval = dataCSI; } if (requestKSDSBody.dataSpaceUnits === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.dataSpaceUnits = "TRK"; } if (requestKSDSBody.dataPrimarySpace === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.dataPrimarySpace = dataPS; } if (requestKSDSBody.dataSecondarySpace === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.dataSecondarySpace = dataSS; } if (requestKSDSBody.indexControlSizeInterval === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.indexControlSizeInterval = indexCSI; } if (requestKSDSBody.indexSpaceUnits === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.indexSpaceUnits = "TRK"; } if (requestKSDSBody.indexPrimarySpace === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.indexPrimarySpace = indexPS; } if (requestKSDSBody.indexSecondarySpace === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.indexSecondarySpace = dataSS; } if (requestKSDSBody.averageRecordSize === undefined && requestKSDSBody.model === undefined) { requestKSDSBody.averageRecordSize = requestKSDSBody.maximumRecordSize; } let expPerm; let expDate; if (requestKSDSBody.expirationDate === "P" || requestKSDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestKSDSBody.expirationDate; } const body = { request: "create", fileFormat: "VSAM", model: requestKSDSBody.model, cluster: { bufferSpace: requestKSDSBody.bufferSpace, erase: requestKSDSBody.erase, loadRestartable: requestKSDSBody.loadRestartable, organization: "K", reuse: requestKSDSBody.reuse, spanned: requestKSDSBody.spanned, writeCheck: requestKSDSBody.writeCheck, log: requestKSDSBody.log, frlog: requestKSDSBody.frlog, logReplicate: requestKSDSBody.logReplicate, logStreamId: requestKSDSBody.logStreamID, rlsEnable: requestKSDSBody.rlsEnable, freespace: { caPercent: requestKSDSBody.controlAreaFreeSpacePercentage, ciPercent: requestKSDSBody.controlIntervalFreeSpacePercentage, }, keys: { length: requestKSDSBody.keyLength, offset: requestKSDSBody.keyPosition }, recordSize: { average: requestKSDSBody.averageRecordSize, maximum: requestKSDSBody.maximumRecordSize }, shareOptions: { crossRegion: requestKSDSBody.crossRegionShareOption, crossSystem: requestKSDSBody.crossSystemShareOption }, sms: { storclas: requestKSDSBody.storageClass, mgmtclas: requestKSDSBody.managementClass, dataclas: requestKSDSBody.dataClass }, expdt: { date: expDate, permanent: expPerm }, }, data: { controlIntervalSize: requestKSDSBody.dataControlSizeInterval, dsname: requestKSDSBody.dataDSName, space: { units: requestKSDSBody.dataSpaceUnits, primary: requestKSDSBody.dataPrimarySpace, secondary: requestKSDSBody.dataSecondarySpace }, volume: requestKSDSBody.dataVolume }, index: { controlIntervalSize: requestKSDSBody.indexControlSizeInterval, dsname: requestKSDSBody.indexDSName, space: { units: requestKSDSBody.indexSpaceUnits, primary: requestKSDSBody.indexPrimarySpace, secondary: requestKSDSBody.indexSecondarySpace }, volume: requestKSDSBody.indexVolume } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateESDS(FMPSession, datasetName, requestESDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dataCSI = 20480; const dataPS = 18; const dataSS = 3; if (requestESDSBody.dataControlSizeInterval === undefined && requestESDSBody.model === undefined) { requestESDSBody.dataControlSizeInterval = dataCSI; } if (requestESDSBody.dataSpaceUnits === undefined && requestESDSBody.model === undefined) { requestESDSBody.dataSpaceUnits = "TRK"; } if (requestESDSBody.dataPrimarySpace === undefined && requestESDSBody.model === undefined) { requestESDSBody.dataPrimarySpace = dataPS; } if (requestESDSBody.dataSecondarySpace === undefined && requestESDSBody.model === undefined) { requestESDSBody.dataSecondarySpace = dataSS; } if (requestESDSBody.averageRecordSize === undefined && requestESDSBody.model === undefined) { requestESDSBody.averageRecordSize = requestESDSBody.maximumRecordSize; } let expPerm; let expDate; if (requestESDSBody.expirationDate === "P" || requestESDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestESDSBody.expirationDate; } const body = { request: "create", fileFormat: "VSAM", model: requestESDSBody.model, cluster: { bufferSpace: requestESDSBody.bufferSpace, erase: requestESDSBody.erase, loadRestartable: requestESDSBody.loadRestartable, organization: "E", reuse: requestESDSBody.reuse, spanned: requestESDSBody.spanned, writeCheck: requestESDSBody.writeCheck, log: requestESDSBody.log, frlog: requestESDSBody.frlog, logReplicate: requestESDSBody.logReplicate, logStreamId: requestESDSBody.logStreamID, rlsEnable: requestESDSBody.rlsEnable, freespace: { caPercent: requestESDSBody.controlAreaFreeSpacePercentage, ciPercent: requestESDSBody.controlIntervalFreeSpacePercentage, }, recordSize: { average: requestESDSBody.averageRecordSize, maximum: requestESDSBody.maximumRecordSize }, shareOptions: { crossRegion: requestESDSBody.crossRegionShareOption, crossSystem: requestESDSBody.crossSystemShareOption }, sms: { storclas: requestESDSBody.storageClass, mgmtclas: requestESDSBody.managementClass, dataclas: requestESDSBody.dataClass }, expdt: { date: expDate, permanent: expPerm }, }, data: { controlIntervalSize: requestESDSBody.dataControlSizeInterval, dsname: requestESDSBody.dataDSName, space: { units: requestESDSBody.dataSpaceUnits, primary: requestESDSBody.dataPrimarySpace, secondary: requestESDSBody.dataSecondarySpace }, volume: requestESDSBody.dataVolume } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateLDS(FMPSession, datasetName, requestLDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dataCSI = 4096; const dataPS = 18; const dataSS = 3; if (requestLDSBody.dataControlSizeInterval === undefined && requestLDSBody.model === undefined) { requestLDSBody.dataControlSizeInterval = dataCSI; } if (requestLDSBody.dataSpaceUnits === undefined && requestLDSBody.model === undefined) { requestLDSBody.dataSpaceUnits = "TRK"; } if (requestLDSBody.dataPrimarySpace === undefined && requestLDSBody.model === undefined) { requestLDSBody.dataPrimarySpace = dataPS; } if (requestLDSBody.dataSecondarySpace === undefined && requestLDSBody.model === undefined) { requestLDSBody.dataSecondarySpace = dataSS; } let expPerm; let expDate; if (requestLDSBody.expirationDate === "P" || requestLDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestLDSBody.expirationDate; } const body = { request: "create", fileFormat: "VSAM", model: requestLDSBody.model, cluster: { bufferSpace: requestLDSBody.bufferSpace, erase: requestLDSBody.erase, loadRestartable: requestLDSBody.loadRestartable, organization: "L", reuse: requestLDSBody.reuse, writeCheck: requestLDSBody.writeCheck, freespace: { caPercent: requestLDSBody.controlAreaFreeSpacePercentage, ciPercent: requestLDSBody.controlIntervalFreeSpacePercentage, }, shareOptions: { crossRegion: requestLDSBody.crossRegionShareOption, crossSystem: requestLDSBody.crossSystemShareOption }, sms: { storclas: requestLDSBody.storageClass, mgmtclas: requestLDSBody.managementClass, dataclas: requestLDSBody.dataClass }, expdt: { date: expDate, permanent: expPerm }, }, data: { controlIntervalSize: requestLDSBody.dataControlSizeInterval, dsname: requestLDSBody.dataDSName, space: { units: requestLDSBody.dataSpaceUnits, primary: requestLDSBody.dataPrimarySpace, secondary: requestLDSBody.dataSecondarySpace }, volume: requestLDSBody.dataVolume } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateRRDS(FMPSession, datasetName, requestRRDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dataCSI = 20480; const dataPS = 18; const dataSS = 3; if (requestRRDSBody.dataControlSizeInterval === undefined && requestRRDSBody.model === undefined) { requestRRDSBody.dataControlSizeInterval = dataCSI; } if (requestRRDSBody.dataSpaceUnits === undefined && requestRRDSBody.model === undefined) { requestRRDSBody.dataSpaceUnits = "TRK"; } if (requestRRDSBody.dataPrimarySpace === undefined && requestRRDSBody.model === undefined) { requestRRDSBody.dataPrimarySpace = dataPS; } if (requestRRDSBody.dataSecondarySpace === undefined && requestRRDSBody.model === undefined) { requestRRDSBody.dataSecondarySpace = dataSS; } let averageRecordSize; if (requestRRDSBody.maximumRecordSize !== undefined) { averageRecordSize = requestRRDSBody.maximumRecordSize; } let expPerm; let expDate; if (requestRRDSBody.expirationDate === "P" || requestRRDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestRRDSBody.expirationDate; } const body = { request: "create", fileFormat: "VSAM", model: requestRRDSBody.model, cluster: { bufferSpace: requestRRDSBody.bufferSpace, erase: requestRRDSBody.erase, loadRestartable: requestRRDSBody.loadRestartable, organization: "R", reuse: requestRRDSBody.reuse, writeCheck: requestRRDSBody.writeCheck, log: requestRRDSBody.log, frlog: requestRRDSBody.frlog, logReplicate: requestRRDSBody.logReplicate, logStreamId: requestRRDSBody.logStreamID, rlsEnable: requestRRDSBody.rlsEnable, freespace: { caPercent: requestRRDSBody.controlAreaFreeSpacePercentage, ciPercent: requestRRDSBody.controlIntervalFreeSpacePercentage, }, recordSize: { average: averageRecordSize, maximum: requestRRDSBody.maximumRecordSize }, shareOptions: { crossRegion: requestRRDSBody.crossRegionShareOption, crossSystem: requestRRDSBody.crossSystemShareOption }, sms: { storclas: requestRRDSBody.storageClass, mgmtclas: requestRRDSBody.managementClass, dataclas: requestRRDSBody.dataClass }, expdt: { date: expDate, permanent: expPerm }, }, data: { controlIntervalSize: requestRRDSBody.dataControlSizeInterval, dsname: requestRRDSBody.dataDSName, space: { units: requestRRDSBody.dataSpaceUnits, primary: requestRRDSBody.dataPrimarySpace, secondary: requestRRDSBody.dataSecondarySpace }, volume: requestRRDSBody.dataVolume } }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateVRRDS(FMPSession, datasetName, requestVRRDSBody) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const dataCSI = 20480; const dataPS = 18; const dataSS = 3; const indexCSI = 512; const indexPS = 1; const indexSS = 1; if (requestVRRDSBody.dataControlSizeInterval === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.dataControlSizeInterval = dataCSI; } if (requestVRRDSBody.dataSpaceUnits === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.dataSpaceUnits = "TRK"; } if (requestVRRDSBody.dataPrimarySpace === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.dataPrimarySpace = dataPS; } if (requestVRRDSBody.dataSecondarySpace === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.dataSecondarySpace = dataSS; } if (requestVRRDSBody.indexControlSizeInterval === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.indexControlSizeInterval = indexCSI; } if (requestVRRDSBody.indexSpaceUnits === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.indexSpaceUnits = "TRK"; } if (requestVRRDSBody.indexPrimarySpace === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.indexPrimarySpace = indexPS; } if (requestVRRDSBody.indexSecondarySpace === undefined && requestVRRDSBody.model === undefined) { requestVRRDSBody.indexSecondarySpace = dataSS; } let expPerm; let expDate; if (requestVRRDSBody.expirationDate === "P" || requestVRRDSBody.expirationDate === "p") { expPerm = "Y"; expDate = undefined; } else { expPerm = undefined; expDate = requestVRRDSBody.expirationDate; } const body = { request: "create", fileFormat: "VSAM", model: requestVRRDSBody.model, cluster: { bufferSpace: requestVRRDSBody.bufferSpace, erase: requestVRRDSBody.erase, loadRestartable: requestVRRDSBody.loadRestartable, organization: "R", reuse: requestVRRDSBody.reuse, writeCheck: requestVRRDSBody.writeCheck, log: requestVRRDSBody.log, frlog: requestVRRDSBody.frlog, logReplicate: requestVRRDSBody.logReplicate, logStreamId: requestVRRDSBody.logStreamID, rlsEnable: requestVRRDSBody.rlsEnable, freespace: { caPercent: requestVRRDSBody.controlAreaFreeSpacePercentage, ciPercent: requestVRRDSBody.controlIntervalFreeSpacePercentage, }, recordSize: { average: requestVRRDSBody.averageRecordSize, maximum: requestVRRDSBody.maximumRecordSize }, shareOptions: { crossRegion: requestVRRDSBody.crossRegionShareOption, crossSystem: requestVRRDSBody.crossSystemShareOption }, sms: { storclas: requestVRRDSBody.storageClass, mgmtclas: requestVRRDSBody.managementClass, dataclas: requestVRRDSBody.dataClass }, expdt: { date: expDate, permanent: expPerm }, }, data: { controlIntervalSize: requestVRRDSBody.dataControlSizeInterval, dsname: requestVRRDSBody.dataDSName, space: { units: requestVRRDSBody.dataSpaceUnits, primary: requestVRRDSBody.dataPrimarySpace, secondary: requestVRRDSBody.dataSecondarySpace }, volume: requestVRRDSBody.dataVolume }, index: { controlIntervalSize: requestVRRDSBody.indexControlSizeInterval, dsname: requestVRRDSBody.indexDSName, space: { units: requestVRRDSBody.indexSpaceUnits, primary: requestVRRDSBody.indexPrimarySpace, secondary: requestVRRDSBody.indexSecondarySpace }, volume: requestVRRDSBody.indexVolume }, }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } static doCreateDSLikeModel(FMPSession, datasetName, modeldatasetName) { imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object"); let RESOURCE; if (FMPSession.ISession.basePath !== "") { RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName; } else { RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName; } const body = { request: "create", model: modeldatasetName }; return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body)); } } exports.FMPCreate = FMPCreate; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRk1QQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9jcmVhdGUvRk1QQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxpREFBcUU7QUFDckUsMERBQXVEO0FBQ3ZELCtDQUE0QztBQW1CNUMsTUFBYSxTQUFTO0lBWVgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUEyQixFQUFFLFdBQW1CLEVBQUUsYUFBMEM7UUFHakgsNkJBQWdCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7UUFHekYsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFDLENBQUM7WUFDckMsUUFBUSxHQUFHLHFCQUFTLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDeEQsQ0FBQzthQUNHLENBQUM7WUFDRCxRQUFRLEdBQUcscUJBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUNyRCxDQUFDO1FBR0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksYUFBYSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3RSxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hGLGFBQWEsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLGFBQWEs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