Skip to content

/AWS1/IF_BTC=>REGISTERJOBDEFINITION()

About RegisterJobDefinition

Registers an Batch job definition.

Method Signature

METHODS /AWS1/IF_BTC~REGISTERJOBDEFINITION
  IMPORTING
    !IV_JOBDEFINITIONNAME TYPE /AWS1/BTCSTRING OPTIONAL
    !IV_TYPE TYPE /AWS1/BTCJOBDEFINITIONTYPE OPTIONAL
    !IT_PARAMETERS TYPE /AWS1/CL_BTCPARAMETERSMAP_W=>TT_PARAMETERSMAP OPTIONAL
    !IV_SCHEDULINGPRIORITY TYPE /AWS1/BTCINTEGER OPTIONAL
    !IO_CONTAINERPROPERTIES TYPE REF TO /AWS1/CL_BTCCONTAINERPRPS OPTIONAL
    !IO_NODEPROPERTIES TYPE REF TO /AWS1/CL_BTCNODEPROPERTIES OPTIONAL
    !IO_RETRYSTRATEGY TYPE REF TO /AWS1/CL_BTCRETRYSTRATEGY OPTIONAL
    !IV_PROPAGATETAGS TYPE /AWS1/BTCBOOLEAN OPTIONAL
    !IO_TIMEOUT TYPE REF TO /AWS1/CL_BTCJOBTIMEOUT OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_BTCTAGRISTAGSMAP_W=>TT_TAGRISTAGSMAP OPTIONAL
    !IT_PLATFORMCAPABILITIES TYPE /AWS1/CL_BTCPLATFORMCAPABILI00=>TT_PLATFORMCAPABILITYLIST OPTIONAL
    !IO_EKSPROPERTIES TYPE REF TO /AWS1/CL_BTCEKSPROPERTIES OPTIONAL
    !IO_ECSPROPERTIES TYPE REF TO /AWS1/CL_BTCECSPROPERTIES OPTIONAL
    !IO_CONSUMABLERESOURCEPRPS TYPE REF TO /AWS1/CL_BTCCONSUMABLERESRCP00 OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_btcregjobdefnresponse
  RAISING
    /AWS1/CX_BTCCLIENTEXCEPTION
    /AWS1/CX_BTCSERVEREXCEPTION
    /AWS1/CX_BTCCLIENTEXC
    /AWS1/CX_BTCSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_jobdefinitionname TYPE /AWS1/BTCSTRING /AWS1/BTCSTRING

The name of the job definition to register. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

iv_type TYPE /AWS1/BTCJOBDEFINITIONTYPE /AWS1/BTCJOBDEFINITIONTYPE

The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the Batch User Guide.

  • If the value is container, then one of the following is required: containerProperties, ecsProperties, or eksProperties.

  • If the value is multinode, then nodeProperties is required.

If the job is run on Fargate resources, then multinode isn't supported.

Optional arguments:

it_parameters TYPE /AWS1/CL_BTCPARAMETERSMAP_W=>TT_PARAMETERSMAP TT_PARAMETERSMAP

Default parameter substitution placeholders to set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition.

iv_schedulingpriority TYPE /AWS1/BTCINTEGER /AWS1/BTCINTEGER

The scheduling priority for jobs that are submitted with this job definition. This only affects jobs in job queues with a fair-share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.

The minimum supported value is 0 and the maximum supported value is 9999.

io_containerproperties TYPE REF TO /AWS1/CL_BTCCONTAINERPRPS /AWS1/CL_BTCCONTAINERPRPS

An object with properties specific to Amazon ECS-based single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. This must not be specified for Amazon EKS-based job definitions.

If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties.

io_nodeproperties TYPE REF TO /AWS1/CL_BTCNODEPROPERTIES /AWS1/CL_BTCNODEPROPERTIES

An object with properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the Batch User Guide.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

If the job runs on Amazon EKS resources, then you must not specify nodeProperties.

io_retrystrategy TYPE REF TO /AWS1/CL_BTCRETRYSTRATEGY /AWS1/CL_BTCRETRYSTRATEGY

The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that's specified during a SubmitJob operation overrides the retry strategy defined here. If a job is terminated due to a timeout, it isn't retried.

iv_propagatetags TYPE /AWS1/BTCBOOLEAN /AWS1/BTCBOOLEAN

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

If the job runs on Amazon EKS resources, then you must not specify propagateTags.

io_timeout TYPE REF TO /AWS1/CL_BTCJOBTIMEOUT /AWS1/CL_BTCJOBTIMEOUT

The timeout configuration for jobs that are submitted with this job definition, after which Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60 seconds. Any timeout configuration that's specified during a SubmitJob operation overrides the timeout configuration defined here. For more information, see Job Timeouts in the Batch User Guide.

it_tags TYPE /AWS1/CL_BTCTAGRISTAGSMAP_W=>TT_TAGRISTAGSMAP TT_TAGRISTAGSMAP

The tags that you apply to the job definition to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Batch User Guide.

it_platformcapabilities TYPE /AWS1/CL_BTCPLATFORMCAPABILI00=>TT_PLATFORMCAPABILITYLIST TT_PLATFORMCAPABILITYLIST

The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. To run the job on Fargate resources, specify FARGATE.

If the job runs on Amazon EKS resources, then you must not specify platformCapabilities.

io_eksproperties TYPE REF TO /AWS1/CL_BTCEKSPROPERTIES /AWS1/CL_BTCEKSPROPERTIES

An object with properties that are specific to Amazon EKS-based jobs. This must not be specified for Amazon ECS based job definitions.

io_ecsproperties TYPE REF TO /AWS1/CL_BTCECSPROPERTIES /AWS1/CL_BTCECSPROPERTIES

An object with properties that are specific to Amazon ECS-based jobs. This must not be specified for Amazon EKS-based job definitions.

io_consumableresourceprps TYPE REF TO /AWS1/CL_BTCCONSUMABLERESRCP00 /AWS1/CL_BTCCONSUMABLERESRCP00

Contains a list of consumable resources required by the job.

RETURNING

oo_output TYPE REF TO /aws1/cl_btcregjobdefnresponse /AWS1/CL_BTCREGJOBDEFNRESPONSE

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->registerjobdefinition(
  io_consumableresourceprps = new /aws1/cl_btcconsumableresrcp00(
    it_consumableresourcelist = VALUE /aws1/cl_btcconsumableresrcr00=>tt_consumableresourcelist(
      (
        new /aws1/cl_btcconsumableresrcr00(
          iv_consumableresource = |string|
          iv_quantity = 123
        )
      )
    )
  )
  io_containerproperties = new /aws1/cl_btccontainerprps(
    io_ephemeralstorage = new /aws1/cl_btcephemeralstorage( 123 )
    io_fargateplatformconf = new /aws1/cl_btcfargateplatformc00( |string| )
    io_linuxparameters = new /aws1/cl_btclinuxparameters(
      it_devices = VALUE /aws1/cl_btcdevice=>tt_deviceslist(
        (
          new /aws1/cl_btcdevice(
            it_permissions = VALUE /aws1/cl_btcdevcgroupperms_w=>tt_devicecgrouppermissions(
              ( new /aws1/cl_btcdevcgroupperms_w( |string| ) )
            )
            iv_containerpath = |string|
            iv_hostpath = |string|
          )
        )
      )
      it_tmpfs = VALUE /aws1/cl_btctmpfs=>tt_tmpfslist(
        (
          new /aws1/cl_btctmpfs(
            it_mountoptions = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            iv_containerpath = |string|
            iv_size = 123
          )
        )
      )
      iv_initprocessenabled = ABAP_TRUE
      iv_maxswap = 123
      iv_sharedmemorysize = 123
      iv_swappiness = 123
    )
    io_logconfiguration = new /aws1/cl_btclogconfiguration(
      it_options = VALUE /aws1/cl_btclogconfoptsmap_w=>tt_logconfigurationoptionsmap(
        (
          VALUE /aws1/cl_btclogconfoptsmap_w=>ts_logconfoptionsmap_maprow(
            value = new /aws1/cl_btclogconfoptsmap_w( |string| )
            key = |string|
          )
        )
      )
      it_secretoptions = VALUE /aws1/cl_btcsecret=>tt_secretlist(
        (
          new /aws1/cl_btcsecret(
            iv_name = |string|
            iv_valuefrom = |string|
          )
        )
      )
      iv_logdriver = |string|
    )
    io_networkconfiguration = new /aws1/cl_btcnetworkconf( |string| )
    io_repositorycredentials = new /aws1/cl_btcrepositorycreds( |string| )
    io_runtimeplatform = new /aws1/cl_btcruntimeplatform(
      iv_cpuarchitecture = |string|
      iv_operatingsystemfamily = |string|
    )
    it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
      ( new /aws1/cl_btcstringlist_w( |string| ) )
    )
    it_environment = VALUE /aws1/cl_btckeyvaluepair=>tt_environmentvariables(
      (
        new /aws1/cl_btckeyvaluepair(
          iv_name = |string|
          iv_value = |string|
        )
      )
    )
    it_mountpoints = VALUE /aws1/cl_btcmountpoint=>tt_mountpoints(
      (
        new /aws1/cl_btcmountpoint(
          iv_containerpath = |string|
          iv_readonly = ABAP_TRUE
          iv_sourcevolume = |string|
        )
      )
    )
    it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
      (
        new /aws1/cl_btcresrcrequirement(
          iv_type = |string|
          iv_value = |string|
        )
      )
    )
    it_secrets = VALUE /aws1/cl_btcsecret=>tt_secretlist(
      (
        new /aws1/cl_btcsecret(
          iv_name = |string|
          iv_valuefrom = |string|
        )
      )
    )
    it_ulimits = VALUE /aws1/cl_btculimit=>tt_ulimits(
      (
        new /aws1/cl_btculimit(
          iv_hardlimit = 123
          iv_name = |string|
          iv_softlimit = 123
        )
      )
    )
    it_volumes = VALUE /aws1/cl_btcvolume=>tt_volumes(
      (
        new /aws1/cl_btcvolume(
          io_efsvolumeconfiguration = new /aws1/cl_btcefsvolumeconf(
            io_authorizationconfig = new /aws1/cl_btcefsauthconfig(
              iv_accesspointid = |string|
              iv_iam = |string|
            )
            iv_filesystemid = |string|
            iv_rootdirectory = |string|
            iv_transitencryption = |string|
            iv_transitencryptionport = 123
          )
          io_host = new /aws1/cl_btchost( |string| )
          iv_name = |string|
        )
      )
    )
    iv_enableexecutecommand = ABAP_TRUE
    iv_executionrolearn = |string|
    iv_image = |string|
    iv_instancetype = |string|
    iv_jobrolearn = |string|
    iv_memory = 123
    iv_privileged = ABAP_TRUE
    iv_readonlyrootfilesystem = ABAP_TRUE
    iv_user = |string|
    iv_vcpus = 123
  )
  io_ecsproperties = new /aws1/cl_btcecsproperties(
    it_taskproperties = VALUE /aws1/cl_btcecstaskproperties=>tt_listecstaskproperties(
      (
        new /aws1/cl_btcecstaskproperties(
          io_ephemeralstorage = new /aws1/cl_btcephemeralstorage( 123 )
          io_networkconfiguration = new /aws1/cl_btcnetworkconf( |string| )
          io_runtimeplatform = new /aws1/cl_btcruntimeplatform(
            iv_cpuarchitecture = |string|
            iv_operatingsystemfamily = |string|
          )
          it_containers = VALUE /aws1/cl_btctaskcontainerprps=>tt_listtaskcontainerproperties(
            (
              new /aws1/cl_btctaskcontainerprps(
                io_firelensconfiguration = new /aws1/cl_btcfirelensconf(
                  it_options = VALUE /aws1/cl_btcfirelensconfopts00=>tt_firelensconfoptionsmap(
                    (
                      VALUE /aws1/cl_btcfirelensconfopts00=>ts_firelensconfoptsmap_maprow(
                        value = new /aws1/cl_btcfirelensconfopts00( |string| )
                        key = |string|
                      )
                    )
                  )
                  iv_type = |string|
                )
                io_linuxparameters = new /aws1/cl_btclinuxparameters(
                  it_devices = VALUE /aws1/cl_btcdevice=>tt_deviceslist(
                    (
                      new /aws1/cl_btcdevice(
                        it_permissions = VALUE /aws1/cl_btcdevcgroupperms_w=>tt_devicecgrouppermissions(
                          ( new /aws1/cl_btcdevcgroupperms_w( |string| ) )
                        )
                        iv_containerpath = |string|
                        iv_hostpath = |string|
                      )
                    )
                  )
                  it_tmpfs = VALUE /aws1/cl_btctmpfs=>tt_tmpfslist(
                    (
                      new /aws1/cl_btctmpfs(
                        it_mountoptions = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                          ( new /aws1/cl_btcstringlist_w( |string| ) )
                        )
                        iv_containerpath = |string|
                        iv_size = 123
                      )
                    )
                  )
                  iv_initprocessenabled = ABAP_TRUE
                  iv_maxswap = 123
                  iv_sharedmemorysize = 123
                  iv_swappiness = 123
                )
                io_logconfiguration = new /aws1/cl_btclogconfiguration(
                  it_options = VALUE /aws1/cl_btclogconfoptsmap_w=>tt_logconfigurationoptionsmap(
                    (
                      VALUE /aws1/cl_btclogconfoptsmap_w=>ts_logconfoptionsmap_maprow(
                        value = new /aws1/cl_btclogconfoptsmap_w( |string| )
                        key = |string|
                      )
                    )
                  )
                  it_secretoptions = VALUE /aws1/cl_btcsecret=>tt_secretlist(
                    (
                      new /aws1/cl_btcsecret(
                        iv_name = |string|
                        iv_valuefrom = |string|
                      )
                    )
                  )
                  iv_logdriver = |string|
                )
                io_repositorycredentials = new /aws1/cl_btcrepositorycreds( |string| )
                it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                  ( new /aws1/cl_btcstringlist_w( |string| ) )
                )
                it_dependson = VALUE /aws1/cl_btctskcontainerdepe00=>tt_taskcontainerdependencylist(
                  (
                    new /aws1/cl_btctskcontainerdepe00(
                      iv_condition = |string|
                      iv_containername = |string|
                    )
                  )
                )
                it_environment = VALUE /aws1/cl_btckeyvaluepair=>tt_environmentvariables(
                  (
                    new /aws1/cl_btckeyvaluepair(
                      iv_name = |string|
                      iv_value = |string|
                    )
                  )
                )
                it_mountpoints = VALUE /aws1/cl_btcmountpoint=>tt_mountpoints(
                  (
                    new /aws1/cl_btcmountpoint(
                      iv_containerpath = |string|
                      iv_readonly = ABAP_TRUE
                      iv_sourcevolume = |string|
                    )
                  )
                )
                it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
                  (
                    new /aws1/cl_btcresrcrequirement(
                      iv_type = |string|
                      iv_value = |string|
                    )
                  )
                )
                it_secrets = VALUE /aws1/cl_btcsecret=>tt_secretlist(
                  (
                    new /aws1/cl_btcsecret(
                      iv_name = |string|
                      iv_valuefrom = |string|
                    )
                  )
                )
                it_ulimits = VALUE /aws1/cl_btculimit=>tt_ulimits(
                  (
                    new /aws1/cl_btculimit(
                      iv_hardlimit = 123
                      iv_name = |string|
                      iv_softlimit = 123
                    )
                  )
                )
                iv_essential = ABAP_TRUE
                iv_image = |string|
                iv_name = |string|
                iv_privileged = ABAP_TRUE
                iv_readonlyrootfilesystem = ABAP_TRUE
                iv_user = |string|
              )
            )
          )
          it_volumes = VALUE /aws1/cl_btcvolume=>tt_volumes(
            (
              new /aws1/cl_btcvolume(
                io_efsvolumeconfiguration = new /aws1/cl_btcefsvolumeconf(
                  io_authorizationconfig = new /aws1/cl_btcefsauthconfig(
                    iv_accesspointid = |string|
                    iv_iam = |string|
                  )
                  iv_filesystemid = |string|
                  iv_rootdirectory = |string|
                  iv_transitencryption = |string|
                  iv_transitencryptionport = 123
                )
                io_host = new /aws1/cl_btchost( |string| )
                iv_name = |string|
              )
            )
          )
          iv_enableexecutecommand = ABAP_TRUE
          iv_executionrolearn = |string|
          iv_ipcmode = |string|
          iv_pidmode = |string|
          iv_platformversion = |string|
          iv_taskrolearn = |string|
        )
      )
    )
  )
  io_eksproperties = new /aws1/cl_btceksproperties(
    io_podproperties = new /aws1/cl_btcekspodproperties(
      io_metadata = new /aws1/cl_btceksmetadata(
        it_annotations = VALUE /aws1/cl_btceksannotationsma00=>tt_eksannotationsmap(
          (
            VALUE /aws1/cl_btceksannotationsma00=>ts_eksannotationsmap_maprow(
              key = |string|
              value = new /aws1/cl_btceksannotationsma00( |string| )
            )
          )
        )
        it_labels = VALUE /aws1/cl_btcekslabelsmap_w=>tt_ekslabelsmap(
          (
            VALUE /aws1/cl_btcekslabelsmap_w=>ts_ekslabelsmap_maprow(
              value = new /aws1/cl_btcekslabelsmap_w( |string| )
              key = |string|
            )
          )
        )
        iv_namespace = |string|
      )
      it_containers = VALUE /aws1/cl_btcekscontainer=>tt_ekscontainers(
        (
          new /aws1/cl_btcekscontainer(
            io_resources = new /aws1/cl_btcekscontainerresr00(
              it_limits = VALUE /aws1/cl_btcekslimits_w=>tt_ekslimits(
                (
                  VALUE /aws1/cl_btcekslimits_w=>ts_ekslimits_maprow(
                    value = new /aws1/cl_btcekslimits_w( |string| )
                    key = |string|
                  )
                )
              )
              it_requests = VALUE /aws1/cl_btceksrequests_w=>tt_eksrequests(
                (
                  VALUE /aws1/cl_btceksrequests_w=>ts_eksrequests_maprow(
                    key = |string|
                    value = new /aws1/cl_btceksrequests_w( |string| )
                  )
                )
              )
            )
            io_securitycontext = new /aws1/cl_btcekscontainersecctx(
              iv_allowprivilegeescalation = ABAP_TRUE
              iv_privileged = ABAP_TRUE
              iv_readonlyrootfilesystem = ABAP_TRUE
              iv_runasgroup = 123
              iv_runasnonroot = ABAP_TRUE
              iv_runasuser = 123
            )
            it_args = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            it_env = VALUE /aws1/cl_btcekscontainerenvi00=>tt_ekscontainerenvironmentva00(
              (
                new /aws1/cl_btcekscontainerenvi00(
                  iv_name = |string|
                  iv_value = |string|
                )
              )
            )
            it_volumemounts = VALUE /aws1/cl_btcekscontainervolm00=>tt_ekscontainervolumemounts(
              (
                new /aws1/cl_btcekscontainervolm00(
                  iv_mountpath = |string|
                  iv_name = |string|
                  iv_readonly = ABAP_TRUE
                  iv_subpath = |string|
                )
              )
            )
            iv_image = |string|
            iv_imagepullpolicy = |string|
            iv_name = |string|
          )
        )
      )
      it_imagepullsecrets = VALUE /aws1/cl_btcimagepullsecret=>tt_imagepullsecrets(
        ( new /aws1/cl_btcimagepullsecret( |string| ) )
      )
      it_initcontainers = VALUE /aws1/cl_btcekscontainer=>tt_ekscontainers(
        (
          new /aws1/cl_btcekscontainer(
            io_resources = new /aws1/cl_btcekscontainerresr00(
              it_limits = VALUE /aws1/cl_btcekslimits_w=>tt_ekslimits(
                (
                  VALUE /aws1/cl_btcekslimits_w=>ts_ekslimits_maprow(
                    value = new /aws1/cl_btcekslimits_w( |string| )
                    key = |string|
                  )
                )
              )
              it_requests = VALUE /aws1/cl_btceksrequests_w=>tt_eksrequests(
                (
                  VALUE /aws1/cl_btceksrequests_w=>ts_eksrequests_maprow(
                    key = |string|
                    value = new /aws1/cl_btceksrequests_w( |string| )
                  )
                )
              )
            )
            io_securitycontext = new /aws1/cl_btcekscontainersecctx(
              iv_allowprivilegeescalation = ABAP_TRUE
              iv_privileged = ABAP_TRUE
              iv_readonlyrootfilesystem = ABAP_TRUE
              iv_runasgroup = 123
              iv_runasnonroot = ABAP_TRUE
              iv_runasuser = 123
            )
            it_args = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            it_env = VALUE /aws1/cl_btcekscontainerenvi00=>tt_ekscontainerenvironmentva00(
              (
                new /aws1/cl_btcekscontainerenvi00(
                  iv_name = |string|
                  iv_value = |string|
                )
              )
            )
            it_volumemounts = VALUE /aws1/cl_btcekscontainervolm00=>tt_ekscontainervolumemounts(
              (
                new /aws1/cl_btcekscontainervolm00(
                  iv_mountpath = |string|
                  iv_name = |string|
                  iv_readonly = ABAP_TRUE
                  iv_subpath = |string|
                )
              )
            )
            iv_image = |string|
            iv_imagepullpolicy = |string|
            iv_name = |string|
          )
        )
      )
      it_volumes = VALUE /aws1/cl_btceksvolume=>tt_eksvolumes(
        (
          new /aws1/cl_btceksvolume(
            io_emptydir = new /aws1/cl_btceksemptydir(
              iv_medium = |string|
              iv_sizelimit = |string|
            )
            io_hostpath = new /aws1/cl_btcekshostpath( |string| )
            io_persistentvolumeclaim = new /aws1/cl_btcekspersistentvol00(
              iv_claimname = |string|
              iv_readonly = ABAP_TRUE
            )
            io_secret = new /aws1/cl_btcekssecret(
              iv_optional = ABAP_TRUE
              iv_secretname = |string|
            )
            iv_name = |string|
          )
        )
      )
      iv_dnspolicy = |string|
      iv_hostnetwork = ABAP_TRUE
      iv_serviceaccountname = |string|
      iv_shareprocessnamespace = ABAP_TRUE
    )
  )
  io_nodeproperties = new /aws1/cl_btcnodeproperties(
    it_noderangeproperties = VALUE /aws1/cl_btcnoderangeproperty=>tt_noderangeproperties(
      (
        new /aws1/cl_btcnoderangeproperty(
          io_consumableresourceprps = new /aws1/cl_btcconsumableresrcp00(
            it_consumableresourcelist = VALUE /aws1/cl_btcconsumableresrcr00=>tt_consumableresourcelist(
              (
                new /aws1/cl_btcconsumableresrcr00(
                  iv_consumableresource = |string|
                  iv_quantity = 123
                )
              )
            )
          )
          io_container = new /aws1/cl_btccontainerprps(
            io_ephemeralstorage = new /aws1/cl_btcephemeralstorage( 123 )
            io_fargateplatformconf = new /aws1/cl_btcfargateplatformc00( |string| )
            io_linuxparameters = new /aws1/cl_btclinuxparameters(
              it_devices = VALUE /aws1/cl_btcdevice=>tt_deviceslist(
                (
                  new /aws1/cl_btcdevice(
                    it_permissions = VALUE /aws1/cl_btcdevcgroupperms_w=>tt_devicecgrouppermissions(
                      ( new /aws1/cl_btcdevcgroupperms_w( |string| ) )
                    )
                    iv_containerpath = |string|
                    iv_hostpath = |string|
                  )
                )
              )
              it_tmpfs = VALUE /aws1/cl_btctmpfs=>tt_tmpfslist(
                (
                  new /aws1/cl_btctmpfs(
                    it_mountoptions = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                      ( new /aws1/cl_btcstringlist_w( |string| ) )
                    )
                    iv_containerpath = |string|
                    iv_size = 123
                  )
                )
              )
              iv_initprocessenabled = ABAP_TRUE
              iv_maxswap = 123
              iv_sharedmemorysize = 123
              iv_swappiness = 123
            )
            io_logconfiguration = new /aws1/cl_btclogconfiguration(
              it_options = VALUE /aws1/cl_btclogconfoptsmap_w=>tt_logconfigurationoptionsmap(
                (
                  VALUE /aws1/cl_btclogconfoptsmap_w=>ts_logconfoptionsmap_maprow(
                    value = new /aws1/cl_btclogconfoptsmap_w( |string| )
                    key = |string|
                  )
                )
              )
              it_secretoptions = VALUE /aws1/cl_btcsecret=>tt_secretlist(
                (
                  new /aws1/cl_btcsecret(
                    iv_name = |string|
                    iv_valuefrom = |string|
                  )
                )
              )
              iv_logdriver = |string|
            )
            io_networkconfiguration = new /aws1/cl_btcnetworkconf( |string| )
            io_repositorycredentials = new /aws1/cl_btcrepositorycreds( |string| )
            io_runtimeplatform = new /aws1/cl_btcruntimeplatform(
              iv_cpuarchitecture = |string|
              iv_operatingsystemfamily = |string|
            )
            it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
              ( new /aws1/cl_btcstringlist_w( |string| ) )
            )
            it_environment = VALUE /aws1/cl_btckeyvaluepair=>tt_environmentvariables(
              (
                new /aws1/cl_btckeyvaluepair(
                  iv_name = |string|
                  iv_value = |string|
                )
              )
            )
            it_mountpoints = VALUE /aws1/cl_btcmountpoint=>tt_mountpoints(
              (
                new /aws1/cl_btcmountpoint(
                  iv_containerpath = |string|
                  iv_readonly = ABAP_TRUE
                  iv_sourcevolume = |string|
                )
              )
            )
            it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
              (
                new /aws1/cl_btcresrcrequirement(
                  iv_type = |string|
                  iv_value = |string|
                )
              )
            )
            it_secrets = VALUE /aws1/cl_btcsecret=>tt_secretlist(
              (
                new /aws1/cl_btcsecret(
                  iv_name = |string|
                  iv_valuefrom = |string|
                )
              )
            )
            it_ulimits = VALUE /aws1/cl_btculimit=>tt_ulimits(
              (
                new /aws1/cl_btculimit(
                  iv_hardlimit = 123
                  iv_name = |string|
                  iv_softlimit = 123
                )
              )
            )
            it_volumes = VALUE /aws1/cl_btcvolume=>tt_volumes(
              (
                new /aws1/cl_btcvolume(
                  io_efsvolumeconfiguration = new /aws1/cl_btcefsvolumeconf(
                    io_authorizationconfig = new /aws1/cl_btcefsauthconfig(
                      iv_accesspointid = |string|
                      iv_iam = |string|
                    )
                    iv_filesystemid = |string|
                    iv_rootdirectory = |string|
                    iv_transitencryption = |string|
                    iv_transitencryptionport = 123
                  )
                  io_host = new /aws1/cl_btchost( |string| )
                  iv_name = |string|
                )
              )
            )
            iv_enableexecutecommand = ABAP_TRUE
            iv_executionrolearn = |string|
            iv_image = |string|
            iv_instancetype = |string|
            iv_jobrolearn = |string|
            iv_memory = 123
            iv_privileged = ABAP_TRUE
            iv_readonlyrootfilesystem = ABAP_TRUE
            iv_user = |string|
            iv_vcpus = 123
          )
          io_ecsproperties = new /aws1/cl_btcecsproperties(
            it_taskproperties = VALUE /aws1/cl_btcecstaskproperties=>tt_listecstaskproperties(
              (
                new /aws1/cl_btcecstaskproperties(
                  io_ephemeralstorage = new /aws1/cl_btcephemeralstorage( 123 )
                  io_networkconfiguration = new /aws1/cl_btcnetworkconf( |string| )
                  io_runtimeplatform = new /aws1/cl_btcruntimeplatform(
                    iv_cpuarchitecture = |string|
                    iv_operatingsystemfamily = |string|
                  )
                  it_containers = VALUE /aws1/cl_btctaskcontainerprps=>tt_listtaskcontainerproperties(
                    (
                      new /aws1/cl_btctaskcontainerprps(
                        io_firelensconfiguration = new /aws1/cl_btcfirelensconf(
                          it_options = VALUE /aws1/cl_btcfirelensconfopts00=>tt_firelensconfoptionsmap(
                            (
                              VALUE /aws1/cl_btcfirelensconfopts00=>ts_firelensconfoptsmap_maprow(
                                value = new /aws1/cl_btcfirelensconfopts00( |string| )
                                key = |string|
                              )
                            )
                          )
                          iv_type = |string|
                        )
                        io_linuxparameters = new /aws1/cl_btclinuxparameters(
                          it_devices = VALUE /aws1/cl_btcdevice=>tt_deviceslist(
                            (
                              new /aws1/cl_btcdevice(
                                it_permissions = VALUE /aws1/cl_btcdevcgroupperms_w=>tt_devicecgrouppermissions(
                                  ( new /aws1/cl_btcdevcgroupperms_w( |string| ) )
                                )
                                iv_containerpath = |string|
                                iv_hostpath = |string|
                              )
                            )
                          )
                          it_tmpfs = VALUE /aws1/cl_btctmpfs=>tt_tmpfslist(
                            (
                              new /aws1/cl_btctmpfs(
                                it_mountoptions = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                                  ( new /aws1/cl_btcstringlist_w( |string| ) )
                                )
                                iv_containerpath = |string|
                                iv_size = 123
                              )
                            )
                          )
                          iv_initprocessenabled = ABAP_TRUE
                          iv_maxswap = 123
                          iv_sharedmemorysize = 123
                          iv_swappiness = 123
                        )
                        io_logconfiguration = new /aws1/cl_btclogconfiguration(
                          it_options = VALUE /aws1/cl_btclogconfoptsmap_w=>tt_logconfigurationoptionsmap(
                            (
                              VALUE /aws1/cl_btclogconfoptsmap_w=>ts_logconfoptionsmap_maprow(
                                value = new /aws1/cl_btclogconfoptsmap_w( |string| )
                                key = |string|
                              )
                            )
                          )
                          it_secretoptions = VALUE /aws1/cl_btcsecret=>tt_secretlist(
                            (
                              new /aws1/cl_btcsecret(
                                iv_name = |string|
                                iv_valuefrom = |string|
                              )
                            )
                          )
                          iv_logdriver = |string|
                        )
                        io_repositorycredentials = new /aws1/cl_btcrepositorycreds( |string| )
                        it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                          ( new /aws1/cl_btcstringlist_w( |string| ) )
                        )
                        it_dependson = VALUE /aws1/cl_btctskcontainerdepe00=>tt_taskcontainerdependencylist(
                          (
                            new /aws1/cl_btctskcontainerdepe00(
                              iv_condition = |string|
                              iv_containername = |string|
                            )
                          )
                        )
                        it_environment = VALUE /aws1/cl_btckeyvaluepair=>tt_environmentvariables(
                          (
                            new /aws1/cl_btckeyvaluepair(
                              iv_name = |string|
                              iv_value = |string|
                            )
                          )
                        )
                        it_mountpoints = VALUE /aws1/cl_btcmountpoint=>tt_mountpoints(
                          (
                            new /aws1/cl_btcmountpoint(
                              iv_containerpath = |string|
                              iv_readonly = ABAP_TRUE
                              iv_sourcevolume = |string|
                            )
                          )
                        )
                        it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
                          (
                            new /aws1/cl_btcresrcrequirement(
                              iv_type = |string|
                              iv_value = |string|
                            )
                          )
                        )
                        it_secrets = VALUE /aws1/cl_btcsecret=>tt_secretlist(
                          (
                            new /aws1/cl_btcsecret(
                              iv_name = |string|
                              iv_valuefrom = |string|
                            )
                          )
                        )
                        it_ulimits = VALUE /aws1/cl_btculimit=>tt_ulimits(
                          (
                            new /aws1/cl_btculimit(
                              iv_hardlimit = 123
                              iv_name = |string|
                              iv_softlimit = 123
                            )
                          )
                        )
                        iv_essential = ABAP_TRUE
                        iv_image = |string|
                        iv_name = |string|
                        iv_privileged = ABAP_TRUE
                        iv_readonlyrootfilesystem = ABAP_TRUE
                        iv_user = |string|
                      )
                    )
                  )
                  it_volumes = VALUE /aws1/cl_btcvolume=>tt_volumes(
                    (
                      new /aws1/cl_btcvolume(
                        io_efsvolumeconfiguration = new /aws1/cl_btcefsvolumeconf(
                          io_authorizationconfig = new /aws1/cl_btcefsauthconfig(
                            iv_accesspointid = |string|
                            iv_iam = |string|
                          )
                          iv_filesystemid = |string|
                          iv_rootdirectory = |string|
                          iv_transitencryption = |string|
                          iv_transitencryptionport = 123
                        )
                        io_host = new /aws1/cl_btchost( |string| )
                        iv_name = |string|
                      )
                    )
                  )
                  iv_enableexecutecommand = ABAP_TRUE
                  iv_executionrolearn = |string|
                  iv_ipcmode = |string|
                  iv_pidmode = |string|
                  iv_platformversion = |string|
                  iv_taskrolearn = |string|
                )
              )
            )
          )
          io_eksproperties = new /aws1/cl_btceksproperties(
            io_podproperties = new /aws1/cl_btcekspodproperties(
              io_metadata = new /aws1/cl_btceksmetadata(
                it_annotations = VALUE /aws1/cl_btceksannotationsma00=>tt_eksannotationsmap(
                  (
                    VALUE /aws1/cl_btceksannotationsma00=>ts_eksannotationsmap_maprow(
                      key = |string|
                      value = new /aws1/cl_btceksannotationsma00( |string| )
                    )
                  )
                )
                it_labels = VALUE /aws1/cl_btcekslabelsmap_w=>tt_ekslabelsmap(
                  (
                    VALUE /aws1/cl_btcekslabelsmap_w=>ts_ekslabelsmap_maprow(
                      value = new /aws1/cl_btcekslabelsmap_w( |string| )
                      key = |string|
                    )
                  )
                )
                iv_namespace = |string|
              )
              it_containers = VALUE /aws1/cl_btcekscontainer=>tt_ekscontainers(
                (
                  new /aws1/cl_btcekscontainer(
                    io_resources = new /aws1/cl_btcekscontainerresr00(
                      it_limits = VALUE /aws1/cl_btcekslimits_w=>tt_ekslimits(
                        (
                          VALUE /aws1/cl_btcekslimits_w=>ts_ekslimits_maprow(
                            value = new /aws1/cl_btcekslimits_w( |string| )
                            key = |string|
                          )
                        )
                      )
                      it_requests = VALUE /aws1/cl_btceksrequests_w=>tt_eksrequests(
                        (
                          VALUE /aws1/cl_btceksrequests_w=>ts_eksrequests_maprow(
                            key = |string|
                            value = new /aws1/cl_btceksrequests_w( |string| )
                          )
                        )
                      )
                    )
                    io_securitycontext = new /aws1/cl_btcekscontainersecctx(
                      iv_allowprivilegeescalation = ABAP_TRUE
                      iv_privileged = ABAP_TRUE
                      iv_readonlyrootfilesystem = ABAP_TRUE
                      iv_runasgroup = 123
                      iv_runasnonroot = ABAP_TRUE
                      iv_runasuser = 123
                    )
                    it_args = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                      ( new /aws1/cl_btcstringlist_w( |string| ) )
                    )
                    it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                      ( new /aws1/cl_btcstringlist_w( |string| ) )
                    )
                    it_env = VALUE /aws1/cl_btcekscontainerenvi00=>tt_ekscontainerenvironmentva00(
                      (
                        new /aws1/cl_btcekscontainerenvi00(
                          iv_name = |string|
                          iv_value = |string|
                        )
                      )
                    )
                    it_volumemounts = VALUE /aws1/cl_btcekscontainervolm00=>tt_ekscontainervolumemounts(
                      (
                        new /aws1/cl_btcekscontainervolm00(
                          iv_mountpath = |string|
                          iv_name = |string|
                          iv_readonly = ABAP_TRUE
                          iv_subpath = |string|
                        )
                      )
                    )
                    iv_image = |string|
                    iv_imagepullpolicy = |string|
                    iv_name = |string|
                  )
                )
              )
              it_imagepullsecrets = VALUE /aws1/cl_btcimagepullsecret=>tt_imagepullsecrets(
                ( new /aws1/cl_btcimagepullsecret( |string| ) )
              )
              it_initcontainers = VALUE /aws1/cl_btcekscontainer=>tt_ekscontainers(
                (
                  new /aws1/cl_btcekscontainer(
                    io_resources = new /aws1/cl_btcekscontainerresr00(
                      it_limits = VALUE /aws1/cl_btcekslimits_w=>tt_ekslimits(
                        (
                          VALUE /aws1/cl_btcekslimits_w=>ts_ekslimits_maprow(
                            value = new /aws1/cl_btcekslimits_w( |string| )
                            key = |string|
                          )
                        )
                      )
                      it_requests = VALUE /aws1/cl_btceksrequests_w=>tt_eksrequests(
                        (
                          VALUE /aws1/cl_btceksrequests_w=>ts_eksrequests_maprow(
                            key = |string|
                            value = new /aws1/cl_btceksrequests_w( |string| )
                          )
                        )
                      )
                    )
                    io_securitycontext = new /aws1/cl_btcekscontainersecctx(
                      iv_allowprivilegeescalation = ABAP_TRUE
                      iv_privileged = ABAP_TRUE
                      iv_readonlyrootfilesystem = ABAP_TRUE
                      iv_runasgroup = 123
                      iv_runasnonroot = ABAP_TRUE
                      iv_runasuser = 123
                    )
                    it_args = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                      ( new /aws1/cl_btcstringlist_w( |string| ) )
                    )
                    it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
                      ( new /aws1/cl_btcstringlist_w( |string| ) )
                    )
                    it_env = VALUE /aws1/cl_btcekscontainerenvi00=>tt_ekscontainerenvironmentva00(
                      (
                        new /aws1/cl_btcekscontainerenvi00(
                          iv_name = |string|
                          iv_value = |string|
                        )
                      )
                    )
                    it_volumemounts = VALUE /aws1/cl_btcekscontainervolm00=>tt_ekscontainervolumemounts(
                      (
                        new /aws1/cl_btcekscontainervolm00(
                          iv_mountpath = |string|
                          iv_name = |string|
                          iv_readonly = ABAP_TRUE
                          iv_subpath = |string|
                        )
                      )
                    )
                    iv_image = |string|
                    iv_imagepullpolicy = |string|
                    iv_name = |string|
                  )
                )
              )
              it_volumes = VALUE /aws1/cl_btceksvolume=>tt_eksvolumes(
                (
                  new /aws1/cl_btceksvolume(
                    io_emptydir = new /aws1/cl_btceksemptydir(
                      iv_medium = |string|
                      iv_sizelimit = |string|
                    )
                    io_hostpath = new /aws1/cl_btcekshostpath( |string| )
                    io_persistentvolumeclaim = new /aws1/cl_btcekspersistentvol00(
                      iv_claimname = |string|
                      iv_readonly = ABAP_TRUE
                    )
                    io_secret = new /aws1/cl_btcekssecret(
                      iv_optional = ABAP_TRUE
                      iv_secretname = |string|
                    )
                    iv_name = |string|
                  )
                )
              )
              iv_dnspolicy = |string|
              iv_hostnetwork = ABAP_TRUE
              iv_serviceaccountname = |string|
              iv_shareprocessnamespace = ABAP_TRUE
            )
          )
          it_instancetypes = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
            ( new /aws1/cl_btcstringlist_w( |string| ) )
          )
          iv_targetnodes = |string|
        )
      )
    )
    iv_mainnode = 123
    iv_numnodes = 123
  )
  io_retrystrategy = new /aws1/cl_btcretrystrategy(
    it_evaluateonexit = VALUE /aws1/cl_btcevaluateonexit=>tt_evaluateonexitlist(
      (
        new /aws1/cl_btcevaluateonexit(
          iv_action = |string|
          iv_onexitcode = |string|
          iv_onreason = |string|
          iv_onstatusreason = |string|
        )
      )
    )
    iv_attempts = 123
  )
  io_timeout = new /aws1/cl_btcjobtimeout( 123 )
  it_parameters = VALUE /aws1/cl_btcparametersmap_w=>tt_parametersmap(
    (
      VALUE /aws1/cl_btcparametersmap_w=>ts_parametersmap_maprow(
        key = |string|
        value = new /aws1/cl_btcparametersmap_w( |string| )
      )
    )
  )
  it_platformcapabilities = VALUE /aws1/cl_btcplatformcapabili00=>tt_platformcapabilitylist(
    ( new /aws1/cl_btcplatformcapabili00( |string| ) )
  )
  it_tags = VALUE /aws1/cl_btctagristagsmap_w=>tt_tagristagsmap(
    (
      VALUE /aws1/cl_btctagristagsmap_w=>ts_tagristagsmap_maprow(
        value = new /aws1/cl_btctagristagsmap_w( |string| )
        key = |string|
      )
    )
  )
  iv_jobdefinitionname = |string|
  iv_propagatetags = ABAP_TRUE
  iv_schedulingpriority = 123
  iv_type = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_string = lo_result->get_jobdefinitionname( ).
  lv_string = lo_result->get_jobdefinitionarn( ).
  lv_integer = lo_result->get_revision( ).
ENDIF.

RegisterJobDefinition with tags

This demonstrates calling the RegisterJobDefinition action, including tags.

DATA(lo_result) = lo_client->registerjobdefinition(
  io_containerproperties = new /aws1/cl_btccontainerprps(
    it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
      ( new /aws1/cl_btcstringlist_w( |sleep| ) )
      ( new /aws1/cl_btcstringlist_w( |30| ) )
    )
    it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
      (
        new /aws1/cl_btcresrcrequirement(
          iv_type = |MEMORY|
          iv_value = |128|
        )
      )
      (
        new /aws1/cl_btcresrcrequirement(
          iv_type = |VCPU|
          iv_value = |1|
        )
      )
    )
    iv_image = |busybox|
  )
  it_tags = VALUE /aws1/cl_btctagristagsmap_w=>tt_tagristagsmap(
    (
      VALUE /aws1/cl_btctagristagsmap_w=>ts_tagristagsmap_maprow(
        value = new /aws1/cl_btctagristagsmap_w( |Engineering| )
        key = |Department|
      )
    )
    (
      VALUE /aws1/cl_btctagristagsmap_w=>ts_tagristagsmap_maprow(
        value = new /aws1/cl_btctagristagsmap_w( |JaneDoe| )
        key = |User|
      )
    )
  )
  iv_jobdefinitionname = |sleep30|
  iv_type = |container|
).

To register a job definition

This example registers a job definition for a simple container job.

DATA(lo_result) = lo_client->registerjobdefinition(
  io_containerproperties = new /aws1/cl_btccontainerprps(
    it_command = VALUE /aws1/cl_btcstringlist_w=>tt_stringlist(
      ( new /aws1/cl_btcstringlist_w( |sleep| ) )
      ( new /aws1/cl_btcstringlist_w( |10| ) )
    )
    it_resourcerequirements = VALUE /aws1/cl_btcresrcrequirement=>tt_resourcerequirements(
      (
        new /aws1/cl_btcresrcrequirement(
          iv_type = |MEMORY|
          iv_value = |128|
        )
      )
      (
        new /aws1/cl_btcresrcrequirement(
          iv_type = |VCPU|
          iv_value = |1|
        )
      )
    )
    iv_image = |busybox|
  )
  iv_jobdefinitionname = |sleep10|
  iv_type = |container|
).