function GetOciTopLevelCommand_bds() {
    return 'bds'
}

function GetOciSubcommands_bds() {
    $ociSubcommands = @{
        'bds' = 'auto-scale-config bds-api-key bds-metastore-configuration block-storage cloudsql instance kafka node-backup node-backup-configuration node-replace-configuration work-request work-request-error work-request-log-entry'
        'bds auto-scale-config' = 'create delete edit get list'
        'bds bds-api-key' = 'create delete get list test-bds-object-storage-connection'
        'bds bds-metastore-configuration' = 'activate create delete get list test update'
        'bds block-storage' = 'add'
        'bds cloudsql' = 'add remove'
        'bds instance' = 'backup-node backup-node-node-level-details backup-node-node-type-level-details certificate-service-info change-compartment change-shape create create-node-backup-configuration create-node-backup-configuration-node-level-details create-node-backup-configuration-node-type-level-details create-node-replace-configuration create-node-replace-configuration-node-level-details create-node-replace-configuration-node-type-level-details delete disable-certificate enable-certificate execute-bootstrap-script get get-node-backup get-node-backup-configuration get-node-replace-configuration get-os-patch-details install-os-patch install-os-patch-batching-based-patching-configs install-os-patch-downtime-based-patching-configs install-patch list list-node-backup-configurations list-node-backups list-node-replace-configurations list-os-patches list-patch-histories list-patches master-nodes remove renew-certificate replace-node restart-node start stop update update-node-backup-configuration update-node-backup-configuration-node-level-details update-node-backup-configuration-node-type-level-details update-node-replace-configuration update-node-replace-configuration-node-level-details update-node-replace-configuration-node-type-level-details utility-nodes worker-nodes'
        'bds instance master-nodes' = 'add'
        'bds instance utility-nodes' = 'add'
        'bds instance worker-nodes' = 'add'
        'bds kafka' = 'add remove'
        'bds node-backup' = 'delete'
        'bds node-backup-configuration' = 'delete'
        'bds node-replace-configuration' = 'remove'
        'bds work-request' = 'get list'
        'bds work-request-error' = 'list'
        'bds work-request-log-entry' = 'list'
    }
    return $ociSubcommands
}

function GetOciCommandsToLongParams_bds() {
    $ociCommandsToLongParams = @{
        'bds auto-scale-config create' = 'bds-instance-id cluster-admin-password display-name from-json help if-match is-enabled max-wait-seconds node-type policy policy-details wait-for-state wait-interval-seconds'
        'bds auto-scale-config delete' = 'auto-scaling-configuration-id bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds auto-scale-config edit' = 'auto-scaling-configuration-id bds-instance-id cluster-admin-password display-name force from-json help if-match is-enabled max-wait-seconds policy policy-details wait-for-state wait-interval-seconds'
        'bds auto-scale-config get' = 'auto-scaling-configuration-id bds-instance-id from-json help'
        'bds auto-scale-config list' = 'all bds-instance-id compartment-id display-name from-json help lifecycle-state limit page page-size sort-by sort-order'
        'bds bds-api-key create' = 'bds-instance-id default-region from-json help key-alias max-wait-seconds passphrase user-id wait-for-state wait-interval-seconds'
        'bds bds-api-key delete' = 'api-key-id bds-instance-id force from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds bds-api-key get' = 'api-key-id bds-instance-id from-json help'
        'bds bds-api-key list' = 'all bds-instance-id display-name from-json help lifecycle-state limit page page-size sort-by sort-order user-id'
        'bds bds-api-key test-bds-object-storage-connection' = 'api-key-id bds-instance-id from-json help max-wait-seconds object-storage-region object-storage-uri passphrase wait-for-state wait-interval-seconds'
        'bds bds-metastore-configuration activate' = 'bds-api-key-passphrase bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds metastore-config-id wait-for-state wait-interval-seconds'
        'bds bds-metastore-configuration create' = 'bds-api-key-id bds-api-key-passphrase bds-instance-id cluster-admin-password display-name from-json help max-wait-seconds metastore-id wait-for-state wait-interval-seconds'
        'bds bds-metastore-configuration delete' = 'bds-instance-id force from-json help if-match max-wait-seconds metastore-config-id wait-for-state wait-interval-seconds'
        'bds bds-metastore-configuration get' = 'bds-instance-id from-json help metastore-config-id'
        'bds bds-metastore-configuration list' = 'all bds-api-key-id bds-instance-id display-name from-json help lifecycle-state limit metastore-id metastore-type page page-size sort-by sort-order'
        'bds bds-metastore-configuration test' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds metastore-config-id wait-for-state wait-interval-seconds'
        'bds bds-metastore-configuration update' = 'bds-api-key-id bds-api-key-passphrase bds-instance-id cluster-admin-password display-name from-json help if-match max-wait-seconds metastore-config-id wait-for-state wait-interval-seconds'
        'bds block-storage add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds node-type wait-for-state wait-interval-seconds'
        'bds cloudsql add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds shape shape-config wait-for-state wait-interval-seconds'
        'bds cloudsql remove' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance backup-node' = 'backup-type bds-instance-id from-json help if-match level-type-details max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance backup-node-node-level-details' = 'backup-type bds-instance-id from-json help if-match level-type-details-node-host-name max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance backup-node-node-type-level-details' = 'backup-type bds-instance-id from-json help if-match level-type-details-node-type max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance certificate-service-info' = 'bds-instance-id from-json help if-match services'
        'bds instance change-compartment' = 'bds-instance-id compartment-id from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance change-shape' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds nodes wait-for-state wait-interval-seconds'
        'bds instance create' = 'bootstrap-script-url cluster-admin-password cluster-profile cluster-public-key cluster-version compartment-id defined-tags display-name freeform-tags from-json help is-high-availability is-secure kerberos-realm-name kms-key-id max-wait-seconds network-config nodes wait-for-state wait-interval-seconds'
        'bds instance create-node-backup-configuration' = 'backup-type bds-instance-id display-name from-json help level-type-details max-wait-seconds number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance create-node-backup-configuration-node-level-details' = 'backup-type bds-instance-id display-name from-json help level-type-details-node-host-name max-wait-seconds number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance create-node-backup-configuration-node-type-level-details' = 'backup-type bds-instance-id display-name from-json help level-type-details-node-type max-wait-seconds number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance create-node-replace-configuration' = 'bds-instance-id cluster-admin-password display-name duration-in-minutes from-json help level-type-details max-wait-seconds metric-type wait-for-state wait-interval-seconds'
        'bds instance create-node-replace-configuration-node-level-details' = 'bds-instance-id cluster-admin-password display-name duration-in-minutes from-json help level-type-details-node-host-name max-wait-seconds metric-type wait-for-state wait-interval-seconds'
        'bds instance create-node-replace-configuration-node-type-level-details' = 'bds-instance-id cluster-admin-password display-name duration-in-minutes from-json help level-type-details-node-type max-wait-seconds metric-type wait-for-state wait-interval-seconds'
        'bds instance delete' = 'bds-instance-id force from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance disable-certificate' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds services wait-for-state wait-interval-seconds'
        'bds instance enable-certificate' = 'bds-instance-id cluster-admin-password from-json help host-cert-details if-match max-wait-seconds root-certificate server-key-password services wait-for-state wait-interval-seconds'
        'bds instance execute-bootstrap-script' = 'bds-instance-id bootstrap-script-url cluster-admin-password from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance get' = 'bds-instance-id from-json help'
        'bds instance get-node-backup' = 'bds-instance-id from-json help node-backup-id'
        'bds instance get-node-backup-configuration' = 'bds-instance-id from-json help node-backup-configuration-id'
        'bds instance get-node-replace-configuration' = 'bds-instance-id from-json help node-replace-configuration-id'
        'bds instance get-os-patch-details' = 'bds-instance-id from-json help if-match os-patch-version'
        'bds instance install-os-patch' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds os-patch-version patching-configs wait-for-state wait-interval-seconds'
        'bds instance install-os-patch-batching-based-patching-configs' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds os-patch-version patching-configs-batch-size patching-configs-tolerance-threshold-per-batch patching-configs-wait-time-between-batch-in-seconds wait-for-state wait-interval-seconds'
        'bds instance install-os-patch-downtime-based-patching-configs' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds os-patch-version wait-for-state wait-interval-seconds'
        'bds instance install-patch' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds patch-version wait-for-state wait-interval-seconds'
        'bds instance list' = 'all compartment-id display-name from-json help lifecycle-state limit page page-size sort-by sort-order'
        'bds instance list-node-backup-configurations' = 'all bds-instance-id display-name from-json help lifecycle-state limit page page-size sort-by sort-order'
        'bds instance list-node-backups' = 'all bds-instance-id display-name from-json help lifecycle-state limit node-host-name page page-size sort-by sort-order'
        'bds instance list-node-replace-configurations' = 'all bds-instance-id display-name from-json help lifecycle-state limit page page-size sort-by sort-order'
        'bds instance list-os-patches' = 'all bds-instance-id from-json help if-match limit page page-size sort-by sort-order'
        'bds instance list-patch-histories' = 'all bds-instance-id from-json help lifecycle-state limit page page-size patch-type patch-version sort-by sort-order'
        'bds instance list-patches' = 'all bds-instance-id from-json help limit page page-size'
        'bds instance master-nodes add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds number-of-master-nodes shape shape-config wait-for-state wait-interval-seconds'
        'bds instance remove' = 'bds-instance-id cluster-admin-password from-json help if-match is-force-remove-enabled max-wait-seconds node-id wait-for-state wait-interval-seconds'
        'bds instance renew-certificate' = 'bds-instance-id cluster-admin-password from-json help host-cert-details if-match max-wait-seconds root-certificate server-key-password services wait-for-state wait-interval-seconds'
        'bds instance replace-node' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds node-backup-id node-host-name shape wait-for-state wait-interval-seconds'
        'bds instance restart-node' = 'bds-instance-id from-json help if-match max-wait-seconds node-id wait-for-state wait-interval-seconds'
        'bds instance start' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance stop' = 'bds-instance-id cluster-admin-password from-json help if-match is-force-stop-jobs max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance update' = 'bds-instance-id bootstrap-script-url defined-tags display-name force freeform-tags from-json help if-match kms-key-id max-wait-seconds wait-for-state wait-interval-seconds'
        'bds instance update-node-backup-configuration' = 'backup-type bds-instance-id display-name force from-json help if-match level-type-details max-wait-seconds node-backup-configuration-id number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance update-node-backup-configuration-node-level-details' = 'backup-type bds-instance-id display-name from-json help if-match level-type-details-node-host-name max-wait-seconds node-backup-configuration-id number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance update-node-backup-configuration-node-type-level-details' = 'backup-type bds-instance-id display-name from-json help if-match level-type-details-node-type max-wait-seconds node-backup-configuration-id number-of-backups-to-retain schedule timezone wait-for-state wait-interval-seconds'
        'bds instance update-node-replace-configuration' = 'bds-instance-id display-name duration-in-minutes force from-json help if-match level-type-details max-wait-seconds metric-type node-replace-configuration-id wait-for-state wait-interval-seconds'
        'bds instance update-node-replace-configuration-node-level-details' = 'bds-instance-id display-name duration-in-minutes from-json help if-match level-type-details-node-host-name max-wait-seconds metric-type node-replace-configuration-id wait-for-state wait-interval-seconds'
        'bds instance update-node-replace-configuration-node-type-level-details' = 'bds-instance-id display-name duration-in-minutes from-json help if-match level-type-details-node-type max-wait-seconds metric-type node-replace-configuration-id wait-for-state wait-interval-seconds'
        'bds instance utility-nodes add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds number-of-utility-nodes shape shape-config wait-for-state wait-interval-seconds'
        'bds instance worker-nodes add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds node-type number-of-worker-nodes shape shape-config wait-for-state wait-interval-seconds'
        'bds kafka add' = 'bds-instance-id block-volume-size-in-gbs cluster-admin-password from-json help if-match max-wait-seconds number-of-kafka-nodes shape shape-config wait-for-state wait-interval-seconds'
        'bds kafka remove' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds wait-for-state wait-interval-seconds'
        'bds node-backup delete' = 'bds-instance-id force from-json help if-match max-wait-seconds node-backup-id wait-for-state wait-interval-seconds'
        'bds node-backup-configuration delete' = 'bds-instance-id force from-json help if-match max-wait-seconds node-backup-configuration-id wait-for-state wait-interval-seconds'
        'bds node-replace-configuration remove' = 'bds-instance-id cluster-admin-password from-json help if-match max-wait-seconds node-replace-configuration-id wait-for-state wait-interval-seconds'
        'bds work-request get' = 'from-json help work-request-id'
        'bds work-request list' = 'all compartment-id from-json help limit page page-size resource-id sort-by sort-order'
        'bds work-request-error list' = 'all from-json help limit page page-size sort-by sort-order work-request-id'
        'bds work-request-log-entry list' = 'all from-json help limit page page-size sort-by sort-order work-request-id'
    }
    return $ociCommandsToLongParams
}

function GetOciCommandsToShortParams_bds() {
    $ociCommandsToShortParams = @{
        'bds auto-scale-config create' = '? h'
        'bds auto-scale-config delete' = '? h'
        'bds auto-scale-config edit' = '? h'
        'bds auto-scale-config get' = '? h'
        'bds auto-scale-config list' = '? c h'
        'bds bds-api-key create' = '? h'
        'bds bds-api-key delete' = '? h'
        'bds bds-api-key get' = '? h'
        'bds bds-api-key list' = '? h'
        'bds bds-api-key test-bds-object-storage-connection' = '? h'
        'bds bds-metastore-configuration activate' = '? h'
        'bds bds-metastore-configuration create' = '? h'
        'bds bds-metastore-configuration delete' = '? h'
        'bds bds-metastore-configuration get' = '? h'
        'bds bds-metastore-configuration list' = '? h'
        'bds bds-metastore-configuration test' = '? h'
        'bds bds-metastore-configuration update' = '? h'
        'bds block-storage add' = '? h'
        'bds cloudsql add' = '? h'
        'bds cloudsql remove' = '? h'
        'bds instance backup-node' = '? h'
        'bds instance backup-node-node-level-details' = '? h'
        'bds instance backup-node-node-type-level-details' = '? h'
        'bds instance certificate-service-info' = '? h'
        'bds instance change-compartment' = '? c h'
        'bds instance change-shape' = '? h'
        'bds instance create' = '? c h'
        'bds instance create-node-backup-configuration' = '? h'
        'bds instance create-node-backup-configuration-node-level-details' = '? h'
        'bds instance create-node-backup-configuration-node-type-level-details' = '? h'
        'bds instance create-node-replace-configuration' = '? h'
        'bds instance create-node-replace-configuration-node-level-details' = '? h'
        'bds instance create-node-replace-configuration-node-type-level-details' = '? h'
        'bds instance delete' = '? h'
        'bds instance disable-certificate' = '? h'
        'bds instance enable-certificate' = '? h'
        'bds instance execute-bootstrap-script' = '? h'
        'bds instance get' = '? h'
        'bds instance get-node-backup' = '? h'
        'bds instance get-node-backup-configuration' = '? h'
        'bds instance get-node-replace-configuration' = '? h'
        'bds instance get-os-patch-details' = '? h'
        'bds instance install-os-patch' = '? h'
        'bds instance install-os-patch-batching-based-patching-configs' = '? h'
        'bds instance install-os-patch-downtime-based-patching-configs' = '? h'
        'bds instance install-patch' = '? h'
        'bds instance list' = '? c h'
        'bds instance list-node-backup-configurations' = '? h'
        'bds instance list-node-backups' = '? h'
        'bds instance list-node-replace-configurations' = '? h'
        'bds instance list-os-patches' = '? h'
        'bds instance list-patch-histories' = '? h'
        'bds instance list-patches' = '? h'
        'bds instance master-nodes add' = '? h'
        'bds instance remove' = '? h'
        'bds instance renew-certificate' = '? h'
        'bds instance replace-node' = '? h'
        'bds instance restart-node' = '? h'
        'bds instance start' = '? h'
        'bds instance stop' = '? h'
        'bds instance update' = '? h'
        'bds instance update-node-backup-configuration' = '? h'
        'bds instance update-node-backup-configuration-node-level-details' = '? h'
        'bds instance update-node-backup-configuration-node-type-level-details' = '? h'
        'bds instance update-node-replace-configuration' = '? h'
        'bds instance update-node-replace-configuration-node-level-details' = '? h'
        'bds instance update-node-replace-configuration-node-type-level-details' = '? h'
        'bds instance utility-nodes add' = '? h'
        'bds instance worker-nodes add' = '? h'
        'bds kafka add' = '? h'
        'bds kafka remove' = '? h'
        'bds node-backup delete' = '? h'
        'bds node-backup-configuration delete' = '? h'
        'bds node-replace-configuration remove' = '? h'
        'bds work-request get' = '? h'
        'bds work-request list' = '? c h'
        'bds work-request-error list' = '? h'
        'bds work-request-log-entry list' = '? h'
    }
    return $ociCommandsToShortParams
}