@broadcom/file-master-plus-for-zowe-cli
Version:
File Master Plus Plug-in for Zowe CLI
905 lines • 165 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const FMPSession_1 = require("../FMPSession");
const DCBMin = 1;
const DCBMax = 32760;
const spaceMin = 1;
const spaceMax = 16777215;
const freeSpacePerMin = 0;
const freeSpacePerMax = 100;
const definition = {
name: "create", aliases: ["cre"], type: "group",
description: "Create a data set.",
summary: "Create a data set",
children: [
{
name: "physical-sequential", aliases: ["ps"],
summary: "Create a physical sequential data set",
type: "command",
description: "Create a physical sequential data set.",
handler: __dirname + "/CreatePS.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}
],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a model physical sequential data set name for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "logical-record-length", aliases: ["lrecl", "lrl"],
description: "Specifies the length of the logical record.\nAllowed values: 1-32760\nDefault value: 80\nExample: --lrecl 80",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "block-size", aliases: ["blksize", "bs"],
description: "Specifies the size of the block of records.\nAllowed values: 1-32760\nDefault value: 6160\nExample: --blksize 6160",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "record-format", aliases: ["recfm", "rf"],
description: "Specifies the record format.\nThe allowed values which have the following meaning: \nF - Fixed-length records\nV - Variable-length records\nU - Undefined-length records\nB - Records are blocked\nA - Records contain ASCII printer control characters\nM - Records contain machine code control characters\nS - For variable-length records, records may span blocks\nT - Records may be written into overflow tracks\nDefault value: FB\nExample: --recfm FB",
type: "string",
required: false,
allowableValues: {
values: ["F", "FA", "FM", "FB", "FBA", "FBM", "FS", "FSA", "FSM", "FT", "FTA", "FTM", "FBS", "FBT", "U", "UA", "UM", "UT", "UTA", "UTM", "V", "VA", "VM", "VB", "VBA", "VBM", "VS", "VSA", "VSM", "VT", "VTA", "VTM", "VBS", "VBT"],
caseSensitive: false
}
},
{
name: "space-units", aliases: ["su"],
description: "Specifies the space allocation unit.\nThe allowed values which have the following meaning:\nTRK - Tracks\nCYL - Cylinders\nBLK - Blocksize\nDefault value: CYL\nExample: --su blk",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "BLK"],
caseSensitive: false
}
},
{
name: "primary-space", aliases: ["ps"],
description: "Specifies primary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ps 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "secondary-space", aliases: ["ss"],
description: "Specifies secondary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "volume", aliases: ["v"],
description: "Specifies a disk volume or specific tapes.\nExample: -v vol002",
type: "array",
required: false
},
{
name: "unit-type", aliases: ["ut"],
description: "Specifies the DASD unit name.\nExample: --ut sysda",
type: "string",
required: false
},
{
name: "expiration-date", aliases: ["ed"],
description: "Specifies the expiration date after which the data set can be deleted.\nSpecify 'P' or 'p' to make the data set permanent, or an expiration date in YYYY-MM-DD format.\nExample: --ed 2032-07-31",
type: "string",
required: false
},
{
name: "storage-class", aliases: ["sc"],
description: "Specifies the storage class.\nExample: --sc scl002",
type: "string",
required: false
},
{
name: "management-class", aliases: ["mc"],
description: "Specifies the management class.\nExample: --mc mcl002",
type: "string",
required: false
},
{
name: "data-class", aliases: ["dc"],
description: "Specifies the data class.\nExample: --dc dcl002",
type: "string",
required: false
},
],
profile: {
optional: ["fmp"]
},
examples: [
{
options: "fmmvs.test.dsname",
description: "Creating a physical sequential data set with default option values"
},
{
options: "fmmvs.test.dsname --lrecl 180 --blksize 32720 --recfm vb --ps 5 --ss 5 -v vol005 --su trk --ed 2025-09-27",
description: "Creating a physical sequential data set with options"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname",
description: "Creating a physical sequential data set like a model physical sequential data set"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname --lrecl 180 --recfm VB --ps 5 --ss 5 --ed p",
description: "Creating a physical sequential data set like a model physical sequential data set and overriding the parameters with options"
}
],
},
{
name: "large-format-sequential", aliases: ["large"],
summary: "Create a large format sequential data set",
type: "command",
description: "Create a large format sequential data set.",
handler: __dirname + "/CreateLARGE.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}
],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a model large format sequential data set name for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "logical-record-length", aliases: ["lrecl", "lrl"],
description: "Specifies the length of the logical record.\nAllowed values: 1-32760\nDefault value: 80\nExample: --lrecl 80",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "block-size", aliases: ["blksize", "bs"],
description: "Specifies the size of the block of records.\nAllowed values: 1-32760\nDefault value: 6160\nExample: --blksize 6160",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "record-format", aliases: ["recfm", "rf"],
description: "Specifies the record format.\nThe allowed values which have the following meaning: \nF - Fixed-length records\nV - Variable-length records\nU - Undefined-length records\nB - Records are blocked\nA - Records contain ASCII printer control characters\nM - Records contain machine code control characters\nS - For variable-length records, records may span blocks\nT - Records may be written into overflow tracks\nDefault value: FB\nExample: --recfm FB",
type: "string",
required: false,
allowableValues: {
values: ["F", "FA", "FM", "FB", "FBA", "FBM", "FS", "FSA", "FSM", "FT", "FTA", "FTM", "FBS", "FBT", "U", "UA", "UM", "UT", "UTA", "UTM", "V", "VA", "VM", "VB", "VBA", "VBM", "VS", "VSA", "VSM", "VT", "VTA", "VTM", "VBS", "VBT"],
caseSensitive: false
}
},
{
name: "space-units", aliases: ["su"],
description: "Specifies the space allocation unit.\nThe allowed values which have the following meaning:\nTRK - Tracks\nCYL - Cylinders\nBLK - Blocksize\nDefault value: CYL\nExample: --su blk",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "BLK"],
caseSensitive: false
}
},
{
name: "primary-space", aliases: ["ps"],
description: "Specifies primary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ps 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "secondary-space", aliases: ["ss"],
description: "Specifies secondary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "volume", aliases: ["v"],
description: "Specifies a disk volume or specific tapes.\nExample: -v vol002",
type: "array",
required: false
},
{
name: "unit-type", aliases: ["ut"],
description: "Specifies the DASD unit name.\nExample: --ut sysda",
type: "string",
required: false
},
{
name: "expiration-date", aliases: ["ed"],
description: "Specifies the expiration date after which the data set can be deleted.\nSpecify 'P' or 'p' to make the data set permanent, or an expiration date in YYYY-MM-DD format.\nExample: --ed 2032-07-31",
type: "string",
required: false
},
{
name: "storage-class", aliases: ["sc"],
description: "Specifies the storage class.\nExample: --sc scl002",
type: "string",
required: false
},
{
name: "management-class", aliases: ["mc"],
description: "Specifies the management class.\nExample: --mc mcl002",
type: "string",
required: false
},
{
name: "data-class", aliases: ["dc"],
description: "Specifies the data class.\nExample: --dc dcl002",
type: "string",
required: false
},
],
profile: {
optional: ["fmp"]
},
examples: [
{
options: "fmmvs.test.dsname",
description: "Creating a large format sequential data set with default option values"
},
{
options: "fmmvs.test.dsname --lrecl 180 --blksize 32720 --recfm vb --ps 5 --ss 5 -v vol005 --su trk --ed 2025-09-27",
description: "Creating a large format sequential data set with options"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname",
description: "Creating a large format sequential data set like a model large format sequential data set"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname --lrecl 180 --recfm VB --ps 5 --ss 5 --ed p",
description: "Creating a large format sequential data set like a model large format sequential data set and overriding the parameters with options"
}
],
},
{
name: "partitioned-data-set", aliases: ["pds"],
summary: "Create a partitioned data set",
type: "command",
description: "Create a partitioned data set.",
handler: __dirname + "/CreatePDS.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}
],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a model partitioned data set for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "logical-record-length", aliases: ["lrecl", "lrl"],
description: "Specifies the length of the logical record.\nAllowed values: 1-32760\nDefault value: 80\nExample: --lrecl 80",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "block-size", aliases: ["blksize", "bs"],
description: "Specifies the size of the block of records.\nAllowed values: 1-32760\nDefault value: 6160\nExample: --blksize 6160",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "record-format", aliases: ["recfm", "rf"],
description: "Specifies the record format.\nThe allowed values have the following meaning:\nF - Fixed-length records\nV - Variable-length records\nU - Undefined-length records\nB - Records are blocked\nA - Records contain ASCII printer control characters\nM - Records contain machine code control characters\nS - For variable-length records, records may span blocks\nT - Records may be written into overflow tracks\nDefault value: FB\nExample: --recfm FB",
type: "string",
required: false,
allowableValues: {
values: ["F", "FA", "FM", "FB", "FBA", "FBM", "FS", "FSA", "FSM", "FT", "FTA", "FTM", "FBS", "FBT", "U", "UA", "UM", "UT", "UTA", "UTM", "V", "VA", "VM", "VB", "VBA", "VBM", "VS", "VSA", "VSM", "VT", "VTA", "VTM", "VBS", "VBT"],
caseSensitive: false
}
},
{
name: "space-units", aliases: ["su"],
description: "Specifies the space allocation unit.\nThe allowed values which have the following meaning: \nTRK - Tracks\nCYL - Cylinders\nBLK - Blocksize\nDefault value: CYL\nExample: --su blk",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "BLK"],
caseSensitive: false
}
},
{
name: "primary-space", aliases: ["ps"],
description: "Specifies the primary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ps 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "secondary-space", aliases: ["ss"],
description: "Specifies the secondary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "directory-blocks", aliases: ["db"],
description: "Specifies number of directory blocks.\nAllowed values: 1-16777215\nDefault value: 5\nExample: --db 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "volume", aliases: ["v"],
description: "Specifies a disk volume or specific tapes.\nExample: -v vol002",
type: "string",
required: false
},
{
name: "unit-type", aliases: ["ut"],
description: "Specifies the DASD unit name.\nExample: --ut sysda",
type: "string",
required: false
},
{
name: "expiration-date", aliases: ["ed"],
description: "Specifies the expiration date after which the data set can be deleted.\nSpecify 'P' or 'p' to make the data set permanent, or an expiration date in YYYY-MM-DD format.\nExample: --ed 2032-07-31",
type: "string",
required: false
},
{
name: "storage-class", aliases: ["sc"],
description: "Specifies the storage class.\nExample: --sc scl002",
type: "string",
required: false
},
{
name: "management-class", aliases: ["mc"],
description: "Specifies the management class.\nExample: --mc mcl002",
type: "string",
required: false
},
{
name: "data-class", aliases: ["dc"],
description: "Specifies the data class.\nExample: --dc dcl002",
type: "string",
required: false
},
],
profile: {
optional: ["fmp"]
},
examples: [
{
options: "fmmvs.test.dsname",
description: "Creating a PDS with default option values"
},
{
options: "fmmvs.test.dsname --lrecl 180 --blksize 32720 --recfm vb --ps 5 --ss 5 --db 5 -v vol005 --su trk --ed p",
description: "Creating a PDS with options"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname",
description: "Creating a PDS like a model PDS"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname --lrecl 180 --recfm vb --ps 5 --ss 5 --db 5 -v vol005 --ed 2025-09-27",
description: "Creating a PDS like a model PDS and overriding the parameters with options"
}
],
},
{
name: "partitioned-data-set-extended", aliases: ["pdse"],
summary: "Create an extended partitioned data set",
type: "command",
description: "Create an extended partitioned data set.",
handler: __dirname + "/CreatePDSE.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}
],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a model extentded partitioned data set name for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "data-set-version", aliases: ["dsv", "ver"],
description: "Specifies the data set version.\nDefault value depends on the system settings.\nExample: --ver 2",
type: "number",
required: false,
allowableValues: {
values: ["1", "2"],
caseSensitive: false
},
},
{
name: "generations", aliases: ["g"],
description: "Specifies the number of generations.\nApplicable when data set version is '2'.\nDefault value: 0\nExample: -g 10",
type: "number",
required: false
},
{
name: "logical-record-length", aliases: ["lrecl", "lrl"],
description: "Specifies the length of the logical record.\nAllowed values: 1-32760\nDefault value: 80\nExample: --lrecl 80",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "block-size", aliases: ["blksize", "bs"],
description: "Specifies the size of the block of records.\nAllowed values: 1-32760\nDefault value: 6160\nExample: --blksize 6160",
type: "number",
required: false,
numericValueRange: [DCBMin, DCBMax]
},
{
name: "record-format", aliases: ["recfm", "rf"],
description: "Specifies the record format.\nThe allowed values which have the following meaning: \nF - Fixed-length records\nV - Variable-length records\nU - Undefined-length records\nB - Records are blocked\nA - Records contain ASCII printer control characters\nM - Records contain machine code control characters\nS - For variable-length records, records may span blocks\nT - Records may be written into overflow tracks\nDefault value: FB\nExample: --recfm FB",
type: "string",
required: false,
allowableValues: {
values: ["F", "FA", "FM", "FB", "FBA", "FBM", "FS", "FSA", "FSM", "FT", "FTA", "FTM", "FBS", "FBT", "U", "UA", "UM", "UT", "UTA", "UTM", "V", "VA", "VM", "VB", "VBA", "VBM", "VS", "VSA", "VSM", "VT", "VTA", "VTM", "VBS", "VBT"],
caseSensitive: false
}
},
{
name: "space-units", aliases: ["su"],
description: "Specifies the space allocation unit.\nThe allowed values have the following meaning: \nTRK - Tracks\nCYL - Cylinders\nBLK - Blocksize\nDefault value: CYL\nExample: --su blk",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "BLK"],
caseSensitive: false
}
},
{
name: "primary-space", aliases: ["ps"],
description: "Specifies primary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ps 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "secondary-space", aliases: ["ss"],
description: "Specifies secondary space allocation unit.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "volume", aliases: ["v"],
description: "Specifies a disk volume or specific tapes.\nExample: -v vol002",
type: "string",
required: false
},
{
name: "unit-type", aliases: ["ut"],
description: "Specifies the DASD unit name.\nExample: --ut sysda",
type: "string",
required: false
},
{
name: "expiration-date", aliases: ["ed"],
description: "Specifies the expiration date after which the data set can be deleted.\nSpecify 'P' or 'p' to make the data set permanent, or an expiration date in YYYY-MM-DD format.\nExample: --ed 2032-07-31",
type: "string",
required: false
},
{
name: "storage-class", aliases: ["sc"],
description: "Specifies the storage class.\nExample: --sc scl002",
type: "string",
required: false
},
{
name: "management-class", aliases: ["mc"],
description: "Specifies the management class.\nExample: --mc mcl002",
type: "string",
required: false
},
{
name: "data-class", aliases: ["dc"],
description: "Specifies the data class.\nExample: --dc dcl002",
type: "string",
required: false
},
],
profile: {
optional: ["fmp"]
},
examples: [
{
options: "fmmvs.test.dsname",
description: "Creating a PDSE with default option values"
},
{
options: "fmmvs.test.dsname --ver 2 -g 10 --lrecl 180 --blksize 32720 --recfm vb --ps 5 --ss 5 -v vol005 --su trk --ed 2025-09-27",
description: "Creating a PDSE version 2 with options"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname",
description: "Creating a PDSE data set like a model PDSE"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname --lrecl 180 --recfm vb --ps 5 --ss 5 --db 5 -v vol005 --ed p",
description: "Creating a PDSE like a model PDSE and the parameters with options"
}
],
},
{
name: "vsam-ksds", aliases: ["ksds"],
summary: "Create a KSDS VSAM data set",
type: "command",
description: "Create a key-sequenced data set (KSDS) Virtual Storage Access Method (VSAM) data set.",
handler: __dirname + "/CreateKSDS.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a model KSDS (key-sequenced VSAM data set) for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "keys-position", aliases: ["kp"],
description: "Specifies the position of the key within the base cluster.\nThis parameter is mandatory unless a model data set is specified.\nExample: --kp 1 ",
type: "number",
required: false,
},
{
name: "keys-length", aliases: ["kl"],
description: "Specifies the length of the key within the base cluster.\nThis parameter is mandatory unless a model data set is specified.\nExample: --kl 7 ",
type: "number",
required: false,
},
{
name: "maximum-record-size", aliases: ["mrs"],
description: "Specifies the maximum length of data records.\nThis parameter is mandatory unless a model data set is specified.\nExample: --mrs 180",
type: "number",
required: false,
},
{
name: "average-record-size", aliases: ["ars"],
description: "Specifies the average length of data records.\nIf this parameter is not specified then it is set to the same as the maximum-record-size option.\nExample: --ars 110",
type: "number",
required: false,
},
{
name: "data-dsname", aliases: ["ddsn"],
description: "Specifies the data set name of the data VSAM component.\nIf this parameter is not specified then by default it is set to the cluster name with ‘.DATA’.\nExample: --ddsn fmmvs.vsam.ksds.data",
type: "string",
required: false
},
{
name: "data-control-interval-size", aliases: ["dcis"],
description: "Specifies the size of the Control Interval for the data VSAM component.\nDefault value: 20480\nExample: --dcis 3584",
type: "number",
required: false
},
{
name: "data-space-units", aliases: ["dsu"],
description: "Specifies the space allocation unit for data vsam component.\nThe allowed values have the following meaning: \nTRK - Tracks\nCYL - Cylinders\nREC - Records\nK - Kilobytes\nM - Megabytes\nDefault value: TRK\nExample: --dsu rec",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "REC", "K", "M"],
caseSensitive: false
}
},
{
name: "data-primary-space", aliases: ["dps"],
description: "Specifies the primary space allocation unit for the data VSAM component.\nAllowed values: 1-16777215\nDefault value: 18\nExample: --dps 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "data-secondary-space", aliases: ["dss"],
description: "Specifies the secondary space allocation unit for the data VSAM component.\nAllowed values: 1-16777215\nDefault value: 3\nExample: --dss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "data-volume", aliases: ["dv"],
description: "Specifies a disk volume or specific tapes for the data VSAM component.\nExample: -dv vol002",
type: "array",
required: false
},
{
name: "index-dsname", aliases: ["idsn"],
description: "Specifies the data set name of the index VSAM component.\nIf this parameter is not specified then it is set to the cluster name with ‘.INDEX’ appended.\nExample: --ddsn fmmvs.vsam.ksds.index",
type: "string",
required: false
},
{
name: "index-control-interval-size", aliases: ["icis"],
description: "Specifies the size of Control Interval for index VSAM component.\nDefault value: 512\nExample: --icis 3584",
type: "number",
required: false
},
{
name: "index-space-units", aliases: ["isu"],
description: "Specifies the space allocation unit for index VSAM component.\nThe allowed values have the following meaning: \nTRK - Tracks\nCYL - Cylinders\nREC - Records\nK - Kilobytes\nM - Megabytes\nDefault value: TRK\nExample: --isu cyl",
type: "string",
required: false,
allowableValues: {
values: ["TRK", "CYL", "REC", "K", "M"],
caseSensitive: false
}
},
{
name: "index-primary-space", aliases: ["ips"],
description: "Specifies primary space allocation unit for index VSAM component.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --ips 3",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "index-secondary-space", aliases: ["iss"],
description: "Specifies secondary space allocation unit for index VSAM component.\nAllowed values: 1-16777215\nDefault value: 1\nExample: --iss 5",
type: "number",
required: false,
numericValueRange: [spaceMin, spaceMax]
},
{
name: "index-volume", aliases: ["iv"],
description: "Specifies a disk volume or specific tapes for the index VSAM component.\nExample: -iv vol002",
type: "array",
required: false
},
{
name: "buffer-space", aliases: ["bs"],
description: "Specifies the minimum buffer space to allocate when this VSAM file is accessed.\nExample: --bs 37376",
type: "number",
required: false
},
{
name: "erase", aliases: ["e"],
description: "Indicates whether the VSAM file was allocated with the ERASE parameter, causing all components of the file to be overwritten with binary zeros, when the VSAM file is deleted from the catalog.\nDefault value: n\nExample: -e y",
type: "string",
required: false,
allowableValues: {
values: ["y", "n"],
caseSensitive: false
}
},
{
name: "load-restartable", aliases: ["lr"],
description: "Specify 'Y' to request that the VSAM component definition use the 'RECOVERY' parameter (which causes the data component to be preformatted previous to the initial load). Using this option causes the initial load to take longer, but loads which do not complete successfully can be restarted.\n Specify 'N' to request that the VSAM component definition use the 'SPEED' parameter (which causes the data component to NOT be preformatted previous to the initial load).\nDefault value: n\nExample: -lr y",
type: "string",
required: false,
allowableValues: {
values: ["y", "n"],
caseSensitive: false
}
},
{
name: "reuse", aliases: ["r"],
description: "Indicates whether the VSAM file was allocated with the REUSE parameter specifying that the cluster can be opened again and again as a reusable cluster.\nDefault value: n\nExample: -r y",
type: "string",
required: false,
allowableValues: {
values: ["y", "n"],
caseSensitive: false
}
},
{
name: "spanned", aliases: ["s"],
description: "Indicates whether VSAM file was allocated with the SPANNED parameter indicating that data records larger than a control interval can span multiple control intervals.\nDefault value: n\nExample: -s y",
type: "string",
required: false,
allowableValues: {
values: ["y", "n"],
caseSensitive: false
}
},
{
name: "write-check", aliases: ["wc"],
description: "Indicates whether the VSAM file was allocated with the WRITECHECK parameter requesting each write to the VSAM file to be validated by a read without data transfer.\nDefault value: n\nExample: --wc y",
type: "string",
required: false,
allowableValues: {
values: ["y", "n"],
caseSensitive: false
}
},
{
name: "control-interval-freespace-percentage", aliases: ["cifp"],
description: "Specifies the percentage of empty space in each control interval when the file is initially loaded.The free space lets records be inserted or expanded within a control interval before requiring a control interval split.\nExample: --cifp 10",
type: "number",
required: false,
numericValueRange: [freeSpacePerMin, freeSpacePerMax]
},
{
name: "control-area-freespace-percentage", aliases: ["cafp"],
description: "Specifies the percentage of control intervals to be left unused in each control area as the file is initially loaded. The use of control area free space lets some control interval splits occur before requiring a control area split.\nExample: --cafp 10",
type: "number",
required: false,
numericValueRange: [freeSpacePerMin, freeSpacePerMax]
},
{
name: "cross-region-share-option", aliases: ["crso"],
description: "Specifies that the file can be shared among regions within the same system or within multiple systems using GRS (Global Resource Serialization).\nThe allowed values have the following meaning: \n1 - The data set can be opened for read processing by an unlimited number of users, but the data set can be accessed by only one user when that user is doing read and write processing.\n2 - The data set can be opened by only one user at a time for read and write processing, but any number of users can also be accessing the data set for read processing\n3 - The data set can be fully shared by any number of users.\n4 - The data set can be fully shared by any number of users. VSAM immediately updates the data set for PUTs and refreshes all input buffers for GETs.\nDefault value: 1\nExample: --crso 2",
type: "number",
required: false,
allowableValues: {
values: ["1", "2", "3", "4"],
caseSensitive: false
}
},
{
name: "cross-system-share-option", aliases: ["csso"],
description: "Specifies how the file can be shared among systems.\nThe allowed values have the following meaning: \n3 - The data set can be fully shared by any number of users.\n4 - The data set can be fully shared by any number of users. VSAM immediately updates the data set for PUTs and refreshes all input buffers for GETs.\nDefault value: 3\nExample: --csso 4",
type: "number",
required: false,
allowableValues: {
values: ["3", "4"],
caseSensitive: false
}
},
{
name: "expiration-date", aliases: ["ed"],
description: "Specifies the expiration date after which the data set can be deleted.\nSpecify 'P' or 'p' to make the data set permanent, or an expiration date in YYYY-MM-DD format.\nExample: --ed 2032-07-31",
type: "string",
required: false
},
{
name: "storage-class", aliases: ["sc"],
description: "Specifies the storage class.\nExample: --sc scl002",
type: "string",
required: false
},
{
name: "management-class", aliases: ["mc"],
description: "Specifies the management class.\nExample: --mc mcl002",
type: "string",
required: false
},
{
name: "data-class", aliases: ["dc"],
description: "Specifies the data class.\nExample: --dc dcl002",
type: "string",
required: false
},
{
name: "log", aliases: ["l"],
description: "When specified, 'ALL' or 'UNDO' or 'NONE' indicates the VSAM RLS recovery option.\nExample: --log ALL",
type: "string",
required: false,
allowableValues: {
values: ["NONE", "UNDO", "ALL"],
caseSensitive: false
}
},
{
name: "frlog", aliases: ["fr"],
description: "Specifies the type of VSAM batch logging to perform for this VSAM data set.\nThe allowed values have the following meaning:\nNONE - Disables VSAM batch logging.\nREDO - Enables VSAM batch logging.\nUNDO - Changes made to your VSAM data set are backed out using VSAM batch logging.\nALL - Changes made to your VSAM data set are backed out and forward recovered using VSAM batch logging.\nExample: --frlog ALL",
type: "string",
required: false,
allowableValues: {
values: ["NONE", "UNDO", "ALL", "REDO"],
caseSensitive: false
}
},
{
name: "log-replicate", aliases: ["lrp"],
description: "Specify 'Y' to enable VSAM replication for this data set.\nExample: --lrp y",
type: "string",
required: false,
allowableValues: {
values: ["Y", "N"],
caseSensitive: false
}
},
{
name: "log-stream-id", aliases: ["lsi"],
description: "Specifies the 1- to 26-character name of the forward recovery log stream.\nExample: --lsi LOGSTRA",
type: "string",
required: false,
stringLengthRange: [1, 26]
},
{
name: "rls-enable", aliases: ["rls", "re"],
description: "Specify 'N' to disable VSAM record-level sharing.\nDefault value: y\nExample: --rls n",
type: "string",
required: false,
allowableValues: {
values: ["Y", "N"],
caseSensitive: false
}
}
],
profile: {
optional: ["fmp"]
},
examples: [
{
options: "fmmvs.test.dsname --kp 1 --kl 7 --mrs 160",
description: "Creating a KSDS with default option values and mandatory options"
},
{
options: "fmmvs.test.dsname --kp 1 --kl 7 --mrs 160 --ars 120 --dcis 3584 --dsu cyl --dps 1 --dss 3 --dv vol002 --icis 512 --isu cyl --ips 1 --iss 1 --iv vol002 --bs 37376 -e y -r y -s n --ed 2025-09-27",
description: "Creating a KSDS with options"
},
{
options: "fmmvs.test.dsname --kp 1 --kl 7 --mrs 160 --ars 120 --dcis 3584 --dsu cyl --dps 1 --dss 3 --dv vol002 --icis 512 --isu cyl --ips 1 --iss 1 --iv vol002 --bs 37376 -e y -r y -s n --rls y -l all --lsi loga --lrp y --fr ALL",
description: "Creating a RLS enabled KSDS with logging options"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname",
description: "Creating a KSDS data set like a model KSDS data set"
},
{
options: "fmmvs.test.dsname --model fmmvs.model.dsname --kp 1 --kl 7 --mrs 160 --wc y --bs 37376 --crso 3 --csso 4 --ed p",
description: "Creating a KSDS like a model KSDS data set and overriding the parameters with options"
}
],
},
{
name: "vsam-esds", aliases: ["esds"],
summary: "Create an ESDS VSAM data set",
type: "command",
description: "Create an entry-sequenced Virtual Storage Access Method (VSAM) data set (ESDS).",
handler: __dirname + "/CreateESDS.handler",
positionals: [{
name: "name",
type: "string",
description: "Specifies the name of the data set to create.",
required: true
}],
options: [
{
name: "model", aliases: ["m"],
description: "Specifies the name of a ESDS (entry-sequenced VSAM data set) for allocating parameters.\nThe parameters of the model data set override all defaults.\nExample: -m fmmvs.model.dsname",
type: "string",
required: false
},
{
name: "maximum-record-size", aliases: ["mrs"],
description: "Specifies the maximum length of data records.\nThis parameter is mandatory unless a model data set is specified.\nExample: --mrs 180",
type: "number",
required: false,
},
{
name: "average-record-size", aliases: ["ars"],
description: "Specifies the average length of data records.\nIf this parameter is not specified then it is set to the same as the maximum-record-size option.\nExample: --ars 110",
type: "number",
required: false,
},
{
name: "data-dsname", aliases: ["ddsn"],
description: "Specifies the data set name of the data VSAM component.\nIf this parameter is not specified then by default it is set to the cluster name with ‘.DATA’.\nExample: --ddsn fmmvs.vsam.esds.data",
type: "string",
required: false
},
{
name: "data-control-interval-size", aliases: ["dcis"],
description: "Specifies the size of the Control Interval for the data VSAM component.\nDefault value: 20480\nExample: --dcis 3584",
type: "number",
required: false
},
{
name: "data-space-units", aliases: ["dsu"],