UNPKG

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

Version:

File Master Plus Plug-in for Zowe CLI

802 lines 65.8 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRk1QQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9jcmVhdGUvRk1QQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxpREFBOEU7QUFDOUUsMERBQXVEO0FBQ3ZELCtDQUE0QztBQW1CNUMsTUFBYSxTQUFTO0lBWVgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUEyQixFQUFFLFdBQW1CLEVBQUUsYUFBMEM7UUFHakgsNkJBQWdCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7UUFHekYsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFDO1lBQ3BDLFFBQVEsR0FBRyxxQkFBUyxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDO1NBQ3ZEO2FBQ0c7WUFDQSxRQUFRLEdBQUcscUJBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztTQUNwRDtRQUdELE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVsQixJQUFJLGFBQWEsQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzVFLGFBQWEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxhQUFhLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvRSxhQUFhLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztTQUM1QztRQUNELElBQUksYUFBYSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksYUFBYSxDQUFDLEtBQUss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