ibm.ibm_zos_core.zos_mvs_raw (1.9.0) — module

Run a z/OS program.

| "added in version" 1.1.0 of ibm.ibm_zos_core"

Authors: Xiao Yuan Ma (@bjmaxy), Blake Becker (@blakeinate)

Install collection

Install with ansible-galaxy collection install ibm.ibm_zos_core:==1.9.0


Add to requirements.yml

  collections:
    - name: ibm.ibm_zos_core
      version: 1.9.0

Description

Run a z/OS program.

This is analogous to a job step in JCL.

Defaults will be determined by underlying API if value not provided.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to a new sequential data set and return output as text.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_data_set:
          dd_name: sysprint
          data_set_name: mypgm.output.ds
          disposition: new
          reuse: yes
          type: seq
          space_primary: 5
          space_secondary: 1
          space_type: m
          volumes:
            - "000000"
          record_format: fb
          return_content:
            type: text
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching patterns in catalog,
    save output to a new sequential data set and return output as text.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_data_set:
          dd_name: sysprint
          data_set_name: mypgm.output.ds
          disposition: new
          reuse: yes
          type: seq
          space_primary: 5
          space_secondary: 1
          space_type: m
          volumes:
            - "000000"
          record_format: fb
          return_content:
            type: text
      - dd_input:
          dd_name: sysin
          content:
            - LISTCAT ENTRIES('SOME.DATASET.*')
            - LISTCAT ENTRIES('SOME.OTHER.DS.*')
            - LISTCAT ENTRIES('YET.ANOTHER.DS.*')
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to an existing sequential data set and
    return output as text.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_data_set:
          dd_name: sysprint
          data_set_name: mypgm.output.ds
          disposition: shr
          return_content:
            type: text
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to a sequential data set. If the data set exists,
    then reuse it, if it does not exist, create it. Returns output as text.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_data_set:
          dd_name: sysprint
          data_set_name: mypgm.output.ds
          disposition: new
          reuse: yes
          type: seq
          space_primary: 5
          space_secondary: 1
          space_type: m
          volumes:
            - "000000"
          record_format: fb
          return_content:
            type: text
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to a sequential data set. If the data set exists,
    then back up the existing data set and replace it.
    If the data set does not exist, create it.
    Returns backup name (if a backup was made) and output as text,
    and backup name.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_data_set:
          dd_name: sysprint
          data_set_name: mypgm.output.ds
          disposition: new
          replace: yes
          backup: yes
          type: seq
          space_primary: 5
          space_secondary: 1
          space_type: m
          volumes:
            - "000000"
            - "111111"
            - "SCR002"
          record_format: fb
          return_content:
            type: text
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to a file in UNIX System Services.
  zos_raw:
    save output to a file in UNIX System Services.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_unix:
          dd_name: sysprint
          path: /u/myuser/outputfile.txt
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    save output to a file in UNIX System Services.
    Return the contents of the file in encoding IBM-1047,
    while the file is encoded in ISO8859-1.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_unix:
          dd_name: sysprint
          path: /u/myuser/outputfile.txt
          return_content:
            type: text
            src_encoding: iso8859-1
            response_encoding: ibm-1047
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching pattern in catalog,
    return output to user, but don't store in persistent storage.
    Return the contents of the file in encoding IBM-1047,
    while the file is encoded in ISO8859-1.
  zos_mvs_raw:
    program_name: idcams
    auth: true
    dds:
      - dd_output:
          dd_name: sysprint
          return_content:
            type: text
            src_encoding: iso8859-1
            response_encoding: ibm-1047
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SOME.DATASET.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Take a set of data sets and write them to an archive.
  zos_mvs_raw:
    program_name: adrdssu
    auth: yes
    dds:
      - dd_data_set:
          dd_name: archive
          data_set_name: myhlq.stor.darv1
          disposition: old
      - dd_data_set:
          dd_name: sysin
          data_set_name: myhlq.adrdssu.cmd
          disposition: shr
      - dd_dummy:
          dd_name: sysprint
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Merge two sequential data sets and write them to new data set
  zos_mvs_raw:
    program_name: sort
    auth: no
    parm: "MSGPRT=CRITICAL,LIST"
    dds:
      - dd_data_set:
          dd_name: sortin01
          data_set_name: myhlq.dfsort.main
          disposition: shr
      - dd_data_set:
          dd_name: sortin02
          data_set_name: myhlq.dfsort.new
      - dd_input:
          dd_name: sysin
          content: " MERGE FORMAT=CH,FIELDS=(1,9,A)"
      - dd_data_set:
          dd_name: sortout
          data_set_name: myhlq.dfsort.merge
          type: seq
          disposition: new
      - dd_unix:
          dd_name: sysout
          path: /tmp/sortpgmoutput.txt
          mode: 644
          status_group:
            - ocreat
          access_group: w
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List data sets matching a pattern in catalog,
    save output to a concatenation of data set members and
    files.
  zos_mvs_raw:
    pgm: idcams
    auth: yes
    dds:
      - dd_concat:
          dd_name: sysprint
          dds:
            - dd_data_set:
                data_set_name: myhlq.ds1.out(out1)
            - dd_data_set:
                data_set_name: myhlq.ds1.out(out2)
            - dd_data_set:
                data_set_name: myhlq.ds1.out(out3)
            - dd_unix:
                path: /tmp/overflowout.txt
      - dd_input:
          dd_name: sysin
          content: " LISTCAT ENTRIES('SYS1.*')"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Drop the contents of input dataset into output dataset
      using REPRO command.
  zos_mvs_raw:
    pgm: idcams
    auth: yes
    dds:
    - dd_data_set:
        dd_name: INPUT
        data_set_name: myhlq.ds1.input
    - dd_data_set:
        dd_name: OUTPUT
        data_set_name: myhlq.ds1.output
    - dd_input:
        dd_name: sysin
        content: |
            " REPRO -
              INFILE(INPUT) -
              OUTFILE(OUTPUT)"
    - dd_output:
        dd_name: sysprint
        return_content:
          type: text

    - name: Define a cluster using a literal block style indicator
          with a 2 space indentation.
      zos_mvs_raw:
        program_name: idcams
        auth: yes
        dds:
          - dd_output:
              dd_name: sysprint
              return_content:
                type: text
          - dd_input:
              dd_name: sysin
              content: |2
                DEFINE CLUSTER -
                          (NAME(ANSIBLE.TEST.VSAM) -
                          CYL(10 10)  -
                          FREESPACE(20 20) -
                          INDEXED -
                          KEYS(32 0) -
                          NOERASE -
                          NONSPANNED -
                          NOREUSE -
                          SHAREOPTIONS(3 3) -
                          SPEED -
                          UNORDERED -
                          RECORDSIZE(4086 32600) -
                          VOLUMES(222222) -
                          UNIQUE)

Inputs

    
dds:
    description:
    - The input data source.
    - I(dds) supports 6 types of sources
    - 1. I(dd_data_set) for data set files.
    - 2. I(dd_unix) for UNIX files.
    - 3. I(dd_input) for in-stream data set.
    - 4. I(dd_dummy) for no content input.
    - 5. I(dd_concat) for a data set concatenation.
    - 6. I(dds) supports any combination of source types.
    elements: dict
    required: false
    suboptions:
      dd_concat:
        description:
        - I(dd_concat) is used to specify a data set concatenation.
        required: false
        suboptions:
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
          dds:
            description:
            - 'A list of DD statements, which can contain any of the following types:
              I(dd_data_set), I(dd_unix), and I(dd_input).'
            elements: dict
            required: false
            suboptions:
              dd_data_set:
                description:
                - Specify a data set.
                - I(dd_data_set) can reference an existing data set. The data set referenced
                  with C(data_set_name) must be allocated before the module L(zos_mvs_raw,./zos_mvs_raw.html)
                  is run, you can use L(zos_data_set,./zos_data_set.html) to allocate
                  a data set.
                required: false
                suboptions:
                  backup:
                    default: false
                    description:
                    - Determines if a backup should be made of existing data set when
                      I(disposition=NEW), I(replace=true), and a data set with the desired
                      name is found.
                    - I(backup) is only used when I(replace=true).
                    type: bool
                  block_size:
                    description:
                    - The maximum length of a block in bytes.
                    - Default is dependent on I(record_format)
                    required: false
                    type: int
                  data_set_name:
                    description:
                    - The data set name.
                    required: false
                    type: str
                  directory_blocks:
                    description:
                    - The number of directory blocks to allocate to the data set.
                    required: false
                    type: int
                  disposition:
                    choices:
                    - new
                    - shr
                    - mod
                    - old
                    description:
                    - I(disposition) indicates the status of a data set.
                    - Defaults to shr.
                    required: false
                    type: str
                  disposition_abnormal:
                    choices:
                    - delete
                    - keep
                    - catlg
                    - catalog
                    - uncatlg
                    - uncatalog
                    description:
                    - I(disposition_abnormal) indicates what to do with the data set after
                      abnormal termination of the program.
                    required: false
                    type: str
                  disposition_normal:
                    choices:
                    - delete
                    - keep
                    - catlg
                    - catalog
                    - uncatlg
                    - uncatalog
                    description:
                    - I(disposition_normal) indicates what to do with the data set after
                      normal termination of the program.
                    required: false
                    type: str
                  encryption_key_1:
                    description:
                    - The encrypting key used by the Encryption Key Manager.
                    - Specification of the key labels does not by itself enable encryption.
                      Encryption must be enabled by a data class that specifies an encryption
                      format.
                    required: false
                    suboptions:
                      encoding:
                        choices:
                        - l
                        - h
                        description:
                        - How the label for the key encrypting key specified by I(label)
                          is encoded by the Encryption Key Manager.
                        - I(encoding) can either be set to C(L) for label encoding, or
                          C(H) for hash encoding.
                        - Maps to KEYCD1 on z/OS.
                        required: true
                        type: str
                      label:
                        description:
                        - The label for the key encrypting key used by the Encryption
                          Key Manager.
                        - Key label must have a private key associated with it.
                        - I(label) can be a maximum of 64 characters.
                        - Maps to KEYLAB1 on z/OS.
                        required: true
                        type: str
                    type: dict
                  encryption_key_2:
                    description:
                    - The encrypting key used by the Encryption Key Manager.
                    - Specification of the key labels does not by itself enable encryption.
                      Encryption must be enabled by a data class that specifies an encryption
                      format.
                    required: false
                    suboptions:
                      encoding:
                        choices:
                        - l
                        - h
                        description:
                        - How the label for the key encrypting key specified by I(label)
                          is encoded by the Encryption Key Manager.
                        - I(encoding) can either be set to C(L) for label encoding, or
                          C(H) for hash encoding.
                        - Maps to KEYCD2 on z/OS.
                        required: true
                        type: str
                      label:
                        description:
                        - The label for the key encrypting key used by the Encryption
                          Key Manager.
                        - Key label must have a private key associated with it.
                        - I(label) can be a maximum of 64 characters.
                        - Maps to KEYLAB2 on z/OS.
                        required: true
                        type: str
                    type: dict
                  key_label:
                    description:
                    - The label for the encryption key used by the system to encrypt the
                      data set.
                    - I(key_label) is the public name of a protected encryption key in
                      the ICSF key repository.
                    - I(key_label) should only be provided when creating an extended format
                      data set.
                    - Maps to DSKEYLBL on z/OS.
                    required: false
                    type: str
                  key_length:
                    description:
                    - The length of the keys used in a new data set.
                    - If using SMS, setting I(key_length) overrides the key length defined
                      in the SMS data class of the data set.
                    - Valid values are (0-255 non-vsam), (1-255 vsam).
                    required: false
                    type: int
                  key_offset:
                    description:
                    - The position of the first byte of the record key in each logical
                      record of a new VSAM data set.
                    - The first byte of a logical record is position 0.
                    - Provide I(key_offset) only for VSAM key-sequenced data sets.
                    required: false
                    type: int
                  record_format:
                    choices:
                    - u
                    - vb
                    - vba
                    - fb
                    - fba
                    description:
                    - The format and characteristics of the records for new data set.
                    type: str
                  record_length:
                    description:
                    - The logical record length. (e.g C(80)).
                    - For variable data sets, the length must include the 4-byte prefix
                      area.
                    - 'Defaults vary depending on format: If FB/FBA 80, if VB/VBA 137,
                      if U 0.'
                    - Valid values are (1-32760 for non-vsam,  1-32761 for vsam).
                    - Maps to LRECL on z/OS.
                    required: false
                    type: int
                  replace:
                    default: false
                    description:
                    - Determines if data set should be replaced if I(disposition=NEW)
                      and a data set with matching name already exists.
                    - If I(replace=true), the original data set will be deleted, and a
                      new data set created.
                    - If I(replace=false), and a data set with a matching name already
                      exists, allocation will fail.
                    - Mutually exclusive with I(reuse).
                    - I(replace) is only considered when I(disposition=NEW)
                    - I(replace) will result in loss of all data in the original data
                      set unless I(backup) is specified.
                    type: bool
                  return_content:
                    description:
                    - Determines how content should be returned to the user.
                    - If not provided, no content from the DD is returned.
                    required: false
                    suboptions:
                      response_encoding:
                        default: iso8859-1
                        description:
                        - The encoding to use when returning the contents of the data
                          set.
                        type: str
                      src_encoding:
                        default: ibm-1047
                        description:
                        - The encoding of the data set on the z/OS system.
                        type: str
                      type:
                        choices:
                        - text
                        - base64
                        description:
                        - The type of the content to be returned.
                        - C(text) means return content in encoding specified by I(response_encoding).
                        - I(src_encoding) and I(response_encoding) are only used when
                          I(type=text).
                        - C(base64) means return content in binary mode.
                        required: true
                        type: str
                    type: dict
                  reuse:
                    default: false
                    description:
                    - Determines if data set should be reused if I(disposition=NEW) and
                      a data set with matching name already exists.
                    - If I(reuse=true), I(disposition) will be automatically switched
                      to C(SHR).
                    - If I(reuse=false), and a data set with a matching name already exists,
                      allocation will fail.
                    - Mutually exclusive with I(replace).
                    - I(reuse) is only considered when I(disposition=NEW)
                    type: bool
                  sms_data_class:
                    description:
                    - The desired data class for a new SMS-managed data set.
                    - I(sms_data_class) is ignored if specified for an existing data set.
                    - All values must be between 1-8 alpha-numeric characters.
                    required: false
                    type: str
                  sms_management_class:
                    description:
                    - The desired management class for a new SMS-managed data set.
                    - I(sms_management_class) is ignored if specified for an existing
                      data set.
                    - All values must be between 1-8 alpha-numeric characters.
                    required: false
                    type: str
                  sms_storage_class:
                    description:
                    - The desired storage class for a new SMS-managed data set.
                    - I(sms_storage_class) is ignored if specified for an existing data
                      set.
                    - All values must be between 1-8 alpha-numeric characters.
                    required: false
                    type: str
                  space_primary:
                    description:
                    - The primary amount of space to allocate for a new data set.
                    - The value provided to I(space_type) is used as the unit of space
                      for the allocation.
                    - Not applicable when I(space_type=blklgth) or I(space_type=reclgth).
                    type: int
                  space_secondary:
                    description:
                    - When primary allocation of space is filled, secondary space will
                      be allocated with the provided size as needed.
                    - The value provided to I(space_type) is used as the unit of space
                      for the allocation.
                    - Not applicable when I(space_type=blklgth) or I(space_type=reclgth).
                    type: int
                  space_type:
                    choices:
                    - trk
                    - cyl
                    - b
                    - k
                    - m
                    - g
                    description:
                    - The unit of measurement to use when allocating space for a new data
                      set using I(space_primary) and I(space_secondary).
                    type: str
                  type:
                    choices:
                    - library
                    - pds
                    - pdse
                    - large
                    - basic
                    - seq
                    - rrds
                    - esds
                    - lds
                    - ksds
                    description:
                    - The data set type. Only required when I(disposition=new).
                    - Maps to DSNTYPE on z/OS.
                    type: str
                  volumes:
                    description:
                    - The volume or volumes on which a data set resides or will reside.
                    - Do not specify the same volume multiple times.
                    required: false
                    type: raw
                type: dict
              dd_input:
                description:
                - I(dd_input) is used to specify an in-stream data set.
                - Input will be saved to a temporary data set with a record length of
                  80.
                required: false
                suboptions:
                  content:
                    description:
                    - The input contents for the DD.
                    - I(dd_input) supports single or multiple lines of input.
                    - Multi-line input can be provided as a multi-line string or a list
                      of strings with 1 line per list item.
                    - If a list of strings is provided, newlines will be added to each
                      of the lines when used as input.
                    - 'If a multi-line string is provided, use the proper block scalar
                      style. YAML supports both L(literal,https://yaml.org/spec/1.2.2/#literal-style)
                      and L(folded,https://yaml.org/spec/1.2.2/#line-folding) scalars.
                      It is recommended to use the literal style indicator "|" with a
                      block indentation indicator, for example; I(content: | 2) is a literal
                      block style indicator with a 2 space indentation, the entire block
                      will be indented and newlines preserved. The block indentation range
                      is 1 - 9. While generally unnecessary, YAML does support block L(chomping,https://yaml.org/spec/1.2.2/#8112-block-chomping-indicator)
                      indicators  "+" and "-" as well.'
                    - When using the I(content) option for instream-data, the module will
                      ensure that all lines contain a blank in columns 1 and 2 and add
                      blanks when not present while retaining a maximum length of 80 columns
                      for any line. This is true for all I(content) types; string, list
                      of strings and when using a YAML block indicator.
                    required: true
                    type: raw
                  return_content:
                    description:
                    - Determines how content should be returned to the user.
                    - If not provided, no content from the DD is returned.
                    required: false
                    suboptions:
                      response_encoding:
                        default: iso8859-1
                        description:
                        - The encoding to use when returning the contents of the data
                          set.
                        type: str
                      src_encoding:
                        default: ibm-1047
                        description:
                        - The encoding of the data set on the z/OS system.
                        - for I(dd_input), I(src_encoding) should generally not need to
                          be changed.
                        type: str
                      type:
                        choices:
                        - text
                        - base64
                        description:
                        - The type of the content to be returned.
                        - C(text) means return content in encoding specified by I(response_encoding).
                        - I(src_encoding) and I(response_encoding) are only used when
                          I(type=text).
                        - C(base64) means return content in binary mode.
                        required: true
                        type: str
                    type: dict
                type: dict
              dd_unix:
                description:
                - The path to a file in UNIX System Services (USS).
                required: false
                suboptions:
                  access_group:
                    choices:
                    - r
                    - w
                    - rw
                    - read_only
                    - write_only
                    - read_write
                    - ordonly
                    - owronly
                    - ordwr
                    description:
                    - The kind of access to request for the UNIX file specified in I(path).
                    type: str
                  block_size:
                    description:
                    - The block size, in bytes, for the UNIX file.
                    - Default is dependent on I(record_format)
                    required: false
                    type: int
                  disposition_abnormal:
                    choices:
                    - keep
                    - delete
                    description:
                    - Indicates what to do with the UNIX file after abnormal termination
                      of the program.
                    type: str
                  disposition_normal:
                    choices:
                    - keep
                    - delete
                    description:
                    - Indicates what to do with the UNIX file after normal termination
                      of the program.
                    type: str
                  file_data_type:
                    choices:
                    - binary
                    - text
                    - record
                    default: binary
                    description:
                    - The type of data that is (or will be) stored in the file specified
                      in I(path).
                    - Maps to FILEDATA on z/OS.
                    type: str
                  mode:
                    description:
                    - The file access attributes when the UNIX file is created specified
                      in I(path).
                    - Specify the mode as an octal number similar to chmod.
                    - Maps to PATHMODE on z/OS.
                    type: int
                  path:
                    description:
                    - The path to an existing UNIX file.
                    - Or provide the path to an new created UNIX file when I(status_group=OCREAT).
                    - The provided path must be absolute.
                    required: true
                    type: str
                  record_format:
                    choices:
                    - u
                    - vb
                    - vba
                    - fb
                    - fba
                    description:
                    - The record format for the UNIX file.
                    - I(record_format) is required in situations where the data will be
                      processed as records and therefore, I(record_length), I(block_size)
                      and I(record_format) need to be supplied since a UNIX file would
                      normally be treated as a stream of bytes.
                    type: str
                  record_length:
                    description:
                    - The logical record length for the UNIX file.
                    - I(record_length) is required in situations where the data will be
                      processed as records and therefore, I(record_length), I(block_size)
                      and I(record_format) need to be supplied since a UNIX file would
                      normally be treated as a stream of bytes.
                    - Maps to LRECL on z/OS.
                    required: false
                    type: int
                  return_content:
                    description:
                    - Determines how content should be returned to the user.
                    - If not provided, no content from the DD is returned.
                    required: false
                    suboptions:
                      response_encoding:
                        default: iso8859-1
                        description:
                        - The encoding to use when returning the contents of the file.
                        type: str
                      src_encoding:
                        default: ibm-1047
                        description:
                        - The encoding of the file on the z/OS system.
                        type: str
                      type:
                        choices:
                        - text
                        - base64
                        description:
                        - The type of the content to be returned.
                        - C(text) means return content in encoding specified by I(response_encoding).
                        - I(src_encoding) and I(response_encoding) are only used when
                          I(type=text).
                        - C(base64) means return content in binary mode.
                        required: true
                        type: str
                    type: dict
                  status_group:
                    choices:
                    - oappend
                    - ocreat
                    - oexcl
                    - onoctty
                    - ononblock
                    - osync
                    - otrunc
                    description:
                    - The status for the UNIX file specified in I(path).
                    - If you do not specify a value for the I(status_group) parameter
                      the module assumes that the pathname exists, searches for it, and
                      fails the module if the pathname does not exist.
                    - Maps to PATHOPTS status group file options on z/OS.
                    - You can specify up to 6 choices.
                    - I(oappend) sets the file offset to the end of the file before each
                      write, so that data is written at the end of the file.
                    - I(ocreat) specifies that if the file does not exist, the system
                      is to create it. If a directory specified in the pathname does not
                      exist, one is not created, and the new file is not created. If the
                      file already exists and I(oexcl) was not specified, the system allows
                      the program to use the existing file. If the file already exists
                      and I(oexcl) was specified, the system fails the allocation and
                      the job step.
                    - I(oexcl) specifies that if the file does not exist, the system is
                      to create it. If the file already exists, the system fails the allocation
                      and the job step. The system ignores I(oexcl) if I(ocreat) is not
                      also specified.
                    - I(onoctty) specifies that if the PATH parameter identifies a terminal
                      device, opening of the file does not make the terminal device the
                      controlling terminal for the process.
                    - I(ononblock) specifies the following, depending on the type of file
                    - For a FIFO special file
                    - 1. With I(ononblock) specified and I(ordonly) access, an open function
                      for reading-only returns without delay.
                    - 2. With I(ononblock) not specified and I(ordonly) access, an open
                      function for reading-only blocks (waits) until a process opens the
                      file for writing.
                    - 3. With I(ononblock) specified and I(owronly) access, an open function
                      for writing-only returns an error if no process currently has the
                      file open for reading.
                    - 4. With I(ononblock) not specified and I(owronly) access, an open
                      function for writing-only blocks (waits) until a process opens the
                      file for reading.
                    - 5. For a character special file that supports nonblocking open
                    - 6. If I(ononblock) is specified, an open function returns without
                      blocking (waiting) until the device is ready or available. Device
                      response depends on the type of device.
                    - 7. If I(ononblock) is not specified, an open function blocks (waits)
                      until the device is ready or available.
                    - I(ononblock) has no effect on other file types.
                    - I(osync) specifies that the system is to move data from buffer storage
                      to permanent storage before returning control from a callable service
                      that performs a write.
                    - 'I(otrunc) specifies that the system is to truncate the file length
                      to zero if all the following are true: the file specified exists,
                      the file is a regular file, and the file successfully opened with
                      I(ordwr) or I(owronly).'
                    - When I(otrunc) is specified, the system does not change the mode
                      and owner. I(otrunc) has no effect on FIFO special files or character
                      special files.
                    elements: str
                    required: false
                    type: list
                type: dict
            type: list
        type: dict
      dd_data_set:
        description:
        - Specify a data set.
        - I(dd_data_set) can reference an existing data set or be used to define a new
          data set to be created during execution.
        required: false
        suboptions:
          backup:
            default: false
            description:
            - Determines if a backup should be made of an existing data set when I(disposition=NEW),
              I(replace=true), and a data set with the desired name is found.
            - I(backup) is only used when I(replace=true).
            type: bool
          block_size:
            description:
            - The maximum length of a block in bytes.
            - Default is dependent on I(record_format)
            required: false
            type: int
          data_set_name:
            description:
            - The data set name.
            required: false
            type: str
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
          directory_blocks:
            description:
            - The number of directory blocks to allocate to the data set.
            required: false
            type: int
          disposition:
            choices:
            - new
            - shr
            - mod
            - old
            description:
            - I(disposition) indicates the status of a data set.
            - Defaults to shr.
            required: false
            type: str
          disposition_abnormal:
            choices:
            - delete
            - keep
            - catlg
            - catalog
            - uncatlg
            - uncatalog
            description:
            - I(disposition_abnormal) indicates what to do with the data set after an
              abnormal termination of the program.
            required: false
            type: str
          disposition_normal:
            choices:
            - delete
            - keep
            - catlg
            - catalog
            - uncatlg
            - uncatalog
            description:
            - I(disposition_normal) indicates what to do with the data set after a normal
              termination of the program.
            required: false
            type: str
          encryption_key_1:
            description:
            - The encrypting key used by the Encryption Key Manager.
            - Specification of the key labels does not by itself enable encryption. Encryption
              must be enabled by a data class that specifies an encryption format.
            required: false
            suboptions:
              encoding:
                choices:
                - l
                - h
                description:
                - How the label for the key encrypting key specified by I(label) is encoded
                  by the Encryption Key Manager.
                - I(encoding) can either be set to C(L) for label encoding, or C(H) for
                  hash encoding.
                - Maps to KEYCD1 on z/OS.
                required: true
                type: str
              label:
                description:
                - The label for the key encrypting key used by the Encryption Key Manager.
                - Key label must have a private key associated with it.
                - I(label) can be a maximum of 64 characters.
                - Maps to KEYLAB1 on z/OS.
                required: true
                type: str
            type: dict
          encryption_key_2:
            description:
            - The encrypting key used by the Encryption Key Manager.
            - Specification of the key labels does not by itself enable encryption. Encryption
              must be enabled by a data class that specifies an encryption format.
            required: false
            suboptions:
              encoding:
                choices:
                - l
                - h
                description:
                - How the label for the key encrypting key specified by I(label) is encoded
                  by the Encryption Key Manager.
                - I(encoding) can either be set to C(L) for label encoding, or C(H) for
                  hash encoding.
                - Maps to KEYCD2 on z/OS.
                required: true
                type: str
              label:
                description:
                - The label for the key encrypting key used by the Encryption Key Manager.
                - Key label must have a private key associated with it.
                - I(label) can be a maximum of 64 characters.
                - Maps to KEYLAB2 on z/OS.
                required: true
                type: str
            type: dict
          key_label:
            description:
            - The label for the encryption key used by the system to encrypt the data
              set.
            - I(key_label) is the public name of a protected encryption key in the ICSF
              key repository.
            - I(key_label) should only be provided when creating an extended format data
              set.
            - Maps to DSKEYLBL on z/OS.
            required: false
            type: str
          key_length:
            description:
            - The length of the keys used in a new data set.
            - If using SMS, setting I(key_length) overrides the key length defined in
              the SMS data class of the data set.
            - Valid values are (0-255 non-vsam), (1-255 vsam).
            required: false
            type: int
          key_offset:
            description:
            - The position of the first byte of the record key in each logical record
              of a new VSAM data set.
            - The first byte of a logical record is position 0.
            - Provide I(key_offset) only for VSAM key-sequenced data sets.
            required: false
            type: int
          record_format:
            choices:
            - u
            - vb
            - vba
            - fb
            - fba
            description:
            - The format and characteristics of the records for new data set.
            type: str
          record_length:
            description:
            - The logical record length. (e.g C(80)).
            - For variable data sets, the length must include the 4-byte prefix area.
            - 'Defaults vary depending on format: If FB/FBA 80, if VB/VBA 137, if U 0.'
            - Valid values are (1-32760 for non-vsam,  1-32761 for vsam).
            - Maps to LRECL on z/OS.
            required: false
            type: int
          replace:
            default: false
            description:
            - Determines if a data set should be replaced if I(disposition=NEW) and a
              data set with a matching name already exists.
            - If I(replace=true), the original data set will be deleted, and a new data
              set created.
            - If I(replace=false), and a data set with a matching name already exists,
              allocation will fail.
            - Mutually exclusive with I(reuse).
            - I(replace) is only considered when I(disposition=NEW)
            - I(replace) will result in loss of all data in the original data set unless
              I(backup) is specified.
            type: bool
          return_content:
            description:
            - Determines how content should be returned to the user.
            - If not provided, no content from the DD is returned.
            required: false
            suboptions:
              response_encoding:
                default: iso8859-1
                description:
                - The encoding to use when returning the contents of the data set.
                type: str
              src_encoding:
                default: ibm-1047
                description:
                - The encoding of the data set on the z/OS system.
                type: str
              type:
                choices:
                - text
                - base64
                description:
                - The type of the content to be returned.
                - C(text) means return content in encoding specified by I(response_encoding).
                - I(src_encoding) and I(response_encoding) are only used when I(type=text).
                - C(base64) means return content in binary mode.
                required: true
                type: str
            type: dict
          reuse:
            default: false
            description:
            - Determines if a data set should be reused if I(disposition=NEW) and if a
              data set with a matching name already exists.
            - If I(reuse=true), I(disposition) will be automatically switched to C(SHR).
            - If I(reuse=false), and a data set with a matching name already exists, allocation
              will fail.
            - Mutually exclusive with I(replace).
            - I(reuse) is only considered when I(disposition=NEW)
            type: bool
          sms_data_class:
            description:
            - The desired data class for a new SMS-managed data set.
            - I(sms_data_class) is ignored if specified for an existing data set.
            - All values must be between 1-8 alpha-numeric characters.
            required: false
            type: str
          sms_management_class:
            description:
            - The desired management class for a new SMS-managed data set.
            - I(sms_management_class) is ignored if specified for an existing data set.
            - All values must be between 1-8 alpha-numeric characters.
            required: false
            type: str
          sms_storage_class:
            description:
            - The desired storage class for a new SMS-managed data set.
            - I(sms_storage_class) is ignored if specified for an existing data set.
            - All values must be between 1-8 alpha-numeric characters.
            required: false
            type: str
          space_primary:
            description:
            - The primary amount of space to allocate for a new data set.
            - The value provided to I(space_type) is used as the unit of space for the
              allocation.
            - Not applicable when I(space_type=blklgth) or I(space_type=reclgth).
            type: int
          space_secondary:
            description:
            - When primary allocation of space is filled, secondary space will be allocated
              with the provided size as needed.
            - The value provided to I(space_type) is used as the unit of space for the
              allocation.
            - Not applicable when I(space_type=blklgth) or I(space_type=reclgth).
            type: int
          space_type:
            choices:
            - trk
            - cyl
            - b
            - k
            - m
            - g
            description:
            - The unit of measurement to use when allocating space for a new data set
              using I(space_primary) and I(space_secondary).
            type: str
          type:
            choices:
            - library
            - pds
            - pdse
            - large
            - basic
            - seq
            - rrds
            - esds
            - lds
            - ksds
            description:
            - The data set type. Only required when I(disposition=new).
            - Maps to DSNTYPE on z/OS.
            type: str
          volumes:
            description:
            - The volume or volumes on which a data set resides or will reside.
            - Do not specify the same volume multiple times.
            required: false
            type: raw
        type: dict
      dd_dummy:
        description:
        - Use I(dd_dummy) to specify - No device or external storage space is to be allocated
          to the data set. - No disposition processing is to be performed on the data
          set.
        - I(dd_dummy) accepts no content input.
        required: false
        suboptions:
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
        type: dict
      dd_input:
        description:
        - I(dd_input) is used to specify an in-stream data set.
        - Input will be saved to a temporary data set with a record length of 80.
        required: false
        suboptions:
          content:
            description:
            - The input contents for the DD.
            - I(dd_input) supports single or multiple lines of input.
            - Multi-line input can be provided as a multi-line string or a list of strings
              with 1 line per list item.
            - If a list of strings is provided, newlines will be added to each of the
              lines when used as input.
            - 'If a multi-line string is provided, use the proper block scalar style.
              YAML supports both L(literal,https://yaml.org/spec/1.2.2/#literal-style)
              and L(folded,https://yaml.org/spec/1.2.2/#line-folding) scalars. It is recommended
              to use the literal style indicator "|" with a block indentation indicator,
              for example; I(content: | 2) is a literal block style indicator with a 2
              space indentation, the entire block will be indented and newlines preserved.
              The block indentation range is 1 - 9. While generally unnecessary, YAML
              does support block L(chomping,https://yaml.org/spec/1.2.2/#8112-block-chomping-indicator)
              indicators  "+" and "-" as well.'
            - When using the I(content) option for instream-data, the module will ensure
              that all lines contain a blank in columns 1 and 2 and add blanks when not
              present while retaining a maximum length of 80 columns for any line. This
              is true for all I(content) types; string, list of strings and when using
              a YAML block indicator.
            required: true
            type: raw
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
          return_content:
            description:
            - Determines how content should be returned to the user.
            - If not provided, no content from the DD is returned.
            required: false
            suboptions:
              response_encoding:
                default: iso8859-1
                description:
                - The encoding to use when returning the contents of the data set.
                type: str
              src_encoding:
                default: ibm-1047
                description:
                - The encoding of the data set on the z/OS system.
                - for I(dd_input), I(src_encoding) should generally not need to be changed.
                type: str
              type:
                choices:
                - text
                - base64
                description:
                - The type of the content to be returned.
                - C(text) means return content in encoding specified by I(response_encoding).
                - I(src_encoding) and I(response_encoding) are only used when I(type=text).
                - C(base64) means return content in binary mode.
                required: true
                type: str
            type: dict
        type: dict
      dd_output:
        description:
        - Use I(dd_output) to specify - Content sent to the DD should be returned to the
          user.
        required: false
        suboptions:
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
          return_content:
            description:
            - Determines how content should be returned to the user.
            - If not provided, no content from the DD is returned.
            required: true
            suboptions:
              response_encoding:
                default: iso8859-1
                description:
                - The encoding to use when returning the contents of the data set.
                type: str
              src_encoding:
                default: ibm-1047
                description:
                - The encoding of the data set on the z/OS system.
                - for I(dd_input), I(src_encoding) should generally not need to be changed.
                type: str
              type:
                choices:
                - text
                - base64
                description:
                - The type of the content to be returned.
                - C(text) means return content in encoding specified by I(response_encoding).
                - I(src_encoding) and I(response_encoding) are only used when I(type=text).
                - C(base64) means return content in binary mode.
                required: true
                type: str
            type: dict
        type: dict
      dd_unix:
        description:
        - The path to a file in UNIX System Services (USS).
        required: false
        suboptions:
          access_group:
            choices:
            - r
            - w
            - rw
            - read_only
            - write_only
            - read_write
            - ordonly
            - owronly
            - ordwr
            description:
            - The kind of access to request for the UNIX file specified in I(path).
            required: false
            type: str
          block_size:
            description:
            - The block size, in bytes, for the UNIX file.
            - Default is dependent on I(record_format)
            required: false
            type: int
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
          disposition_abnormal:
            choices:
            - keep
            - delete
            description:
            - Indicates what to do with the UNIX file after abnormal termination of the
              program.
            type: str
          disposition_normal:
            choices:
            - keep
            - delete
            description:
            - Indicates what to do with the UNIX file after normal termination of the
              program.
            type: str
          file_data_type:
            choices:
            - binary
            - text
            - record
            default: binary
            description:
            - The type of data that is (or will be) stored in the file specified in I(path).
            - Maps to FILEDATA on z/OS.
            type: str
          mode:
            description:
            - The file access attributes when the UNIX file is created specified in I(path).
            - Specify the mode as an octal number similarly to chmod.
            - Maps to PATHMODE on z/OS.
            type: int
          path:
            description:
            - The path to an existing UNIX file.
            - Or provide the path to an new created UNIX file when I(status_group=OCREAT).
            - The provided path must be absolute.
            required: true
            type: str
          record_format:
            choices:
            - u
            - vb
            - vba
            - fb
            - fba
            description:
            - The record format for the UNIX file.
            - I(record_format) is required in situations where the data will be processed
              as records and therefore, I(record_length), I(block_size) and I(record_format)
              need to be supplied since a UNIX file would normally be treated as a stream
              of bytes.
            type: str
          record_length:
            description:
            - The logical record length for the UNIX file.
            - I(record_length) is required in situations where the data will be processed
              as records and therefore, I(record_length), I(block_size) and I(record_format)
              need to be supplied since a UNIX file would normally be treated as a stream
              of bytes.
            - Maps to LRECL on z/OS.
            required: false
            type: int
          return_content:
            description:
            - Determines how content should be returned to the user.
            - If not provided, no content from the DD is returned.
            required: false
            suboptions:
              response_encoding:
                default: iso8859-1
                description:
                - The encoding to use when returning the contents of the file.
                type: str
              src_encoding:
                default: ibm-1047
                description:
                - The encoding of the file on the z/OS system.
                type: str
              type:
                choices:
                - text
                - base64
                description:
                - The type of the content to be returned.
                - C(text) means return content in encoding specified by I(response_encoding).
                - I(src_encoding) and I(response_encoding) are only used when I(type=text).
                - C(base64) means return content in binary mode.
                required: true
                type: str
            type: dict
          status_group:
            choices:
            - oappend
            - ocreat
            - oexcl
            - onoctty
            - ononblock
            - osync
            - otrunc
            description:
            - The status for the UNIX file specified in I(path).
            - If you do not specify a value for the I(status_group) parameter, the module
              assumes that the pathname exists, searches for it, and fails the module
              if the pathname does not exist.
            - Maps to PATHOPTS status group file options on z/OS.
            - You can specify up to 6 choices.
            - I(oappend) sets the file offset to the end of the file before each write,
              so that data is written at the end of the file.
            - I(ocreat) specifies that if the file does not exist, the system is to create
              it. If a directory specified in the pathname does not exist, a new directory
              and a new file are not created. If the file already exists and I(oexcl)
              was not specified, the system allows the program to use the existing file.
              If the file already exists and I(oexcl) was specified, the system fails
              the allocation and the job step.
            - I(oexcl) specifies that if the file does not exist, the system is to create
              it. If the file already exists, the system fails the allocation and the
              job step. The system ignores I(oexcl) if I(ocreat) is not also specified.
            - I(onoctty) specifies that if the PATH parameter identifies a terminal device,
              opening of the file does not make the terminal device the controlling terminal
              for the process.
            - I(ononblock) specifies the following, depending on the type of file
            - For a FIFO special file
            - 1. With I(ononblock) specified and I(ordonly) access, an open function for
              reading-only returns without delay.
            - 2. With I(ononblock) not specified and I(ordonly) access, an open function
              for reading-only blocks (waits) until a process opens the file for writing.
            - 3. With I(ononblock) specified and I(owronly) access, an open function for
              writing-only returns an error if no process currently has the file open
              for reading.
            - 4. With I(ononblock) not specified and I(owronly) access, an open function
              for writing-only blocks (waits) until a process opens the file for reading.
            - 5. For a character special file that supports nonblocking open
            - 6. If I(ononblock) is specified, an open function returns without blocking
              (waiting) until the device is ready or available. Device response depends
              on the type of device.
            - 7. If I(ononblock) is not specified, an open function blocks (waits) until
              the device is ready or available.
            - I(ononblock) has no effect on other file types.
            - I(osync) specifies that the system is to move data from buffer storage to
              permanent storage before returning control from a callable service that
              performs a write.
            - 'I(otrunc) specifies that the system is to truncate the file length to zero
              if all the following are true: the file specified exists, the file is a
              regular file, and the file successfully opened with I(ordwr) or I(owronly).'
            - When I(otrunc) is specified, the system does not change the mode and owner.
              I(otrunc) has no effect on FIFO special files or character special files.
            elements: str
            required: false
            type: list
        type: dict
      dd_vio:
        description:
        - I(dd_vio) is used to handle temporary data sets.
        - VIO data sets reside in the paging space; but, to the problem program and the
          access method, the data sets appear to reside on a direct access storage device.
        - You cannot use VIO for permanent data sets, VSAM data sets, or partitioned data
          sets extended (PDSEs).
        required: false
        suboptions:
          dd_name:
            description:
            - The DD name.
            required: true
            type: str
        type: dict
    type: list

auth:
    default: false
    description:
    - Determines whether this program should run with authorized privileges.
    - If I(auth=true), the program runs as APF authorized.
    - If I(auth=false), the program runs as unauthorized.
    required: false
    type: bool

parm:
    description:
    - The program arguments (e.g. -a='MARGINS(1,72)').
    required: false
    type: str

tmp_hlq:
    description:
    - Override the default high level qualifier (HLQ) for temporary and backup datasets.
    - The default HLQ is the Ansible user used to execute the module and if that is not
      available, then the value C(TMPHLQ) is used.
    required: false
    type: str

verbose:
    default: false
    description:
    - Determines if verbose output should be returned from the underlying utility used
      by this module.
    - When I(verbose=true) verbose output is returned on module failure.
    required: false
    type: bool

program_name:
    aliases:
    - pgm
    - program
    description:
    - The name of the z/OS program to run (e.g. IDCAMS, IEFBR14, IEBGENER etc.).
    required: true
    type: str

Outputs

backups:
  contains:
    backup_name:
      description: The name of the data set containing the backup of content from
        data set in original_name.
      type: str
    original_name:
      description: The original data set name for which a backup was made.
      type: str
  description: List of any data set backups made during execution.
  returned: always
  type: dict
dd_names:
  contains:
    byte_count:
      description: The number of bytes in the response content.
      type: int
    content:
      description: The content contained in the data definition.
      elements: str
      type: list
    dd_name:
      description: The data definition name.
      type: str
    name:
      description: The data set or path name associated with the data definition.
      type: str
    record_count:
      description: The lines of the content.
      type: int
  description: All the related dds with the program.
  elements: dict
  returned: on success
  type: list
ret_code:
  contains:
    code:
      description: The return code number returned from the program.
      type: int
  description: The return code.
  returned: always
  type: dict

See also